Activityでxmlで定義したFragmentのインスタンスを取得する方法

1,026 views
Skip to first unread message

チョンボ

unread,
Feb 15, 2014, 2:03:26 AM2/15/14
to android-g...@googlegroups.com
お世話になっております。

現在Fragmentを使用したアプリを作成しているのですが、xmlでFragmentを定義し、Activityでそのインスタンスを取得しようと思っております。
そこで詰まってしまったのですが、xmlに<jp.co.sample.ImageSelectFragment/>でFragmentを定義しactivityはFragmentActivityを継承し、

getFragmentManager().findFragmentByIdで取得しようと試みたのですが、FragmentからImageSelectFragmentには変換できないとエラーが出ました。

xmlの属性値としてandroid:name="jp.co.sample.ImageSelectFragment"を付け加えたりしたのですが、だめでした。


ImageSelectFragmentはFragmentを継承しています。

カスタムViewを作成する場合はViewクラスを継承したクラスを作成し、findViewByIdでViewを取得しダウンキャストして使用していたと

思うのですが、Fragmentの場合はなぜうまくいかないのか理解できませんでした。


このような現象に詳しい方いらっしゃいましたらヒント頂けませんでしょうか?

よろしくお願いいたします。

杉田敏典

unread,
Feb 15, 2014, 2:10:58 AM2/15/14
to 日本Androidの会ML
杉田です。

Fragmentは何種類かのパッケージに含まれていると思いますが、エラーが出ている部分のFragmentとImageSelectFragmentが継承しているFragmentはパッケージが違っていたりしませんか?

--
杉田 敏典 on PC
sugi...@gmail.com


2014年2月15日 16:03 チョンボ <chonbo...@gmail.com>:

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループから退会し、メールの受信を停止するには、android-group-j...@googlegroups.com にメールを送信します。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。

Hirokazu Fukami

unread,
Feb 15, 2014, 2:13:59 AM2/15/14
to android-g...@googlegroups.com
こんにちはfkmです

Activity#getFragmentManager()はAPI Level 11以降のActivityで定義されているもので、
FragmentActivity(support-v4)を使っている場合は、getSupportFragmentManager()でないと
正しく動作しないと思われます。
--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

チョンボ

unread,
Feb 17, 2014, 1:07:49 AM2/17/14
to android-g...@googlegroups.com
杉田様
さっそくのコメントありがとうございます。
継承パッケージは一緒だったのですが、fkm様のご指摘にもありますが、getSupportFragmentManagerでなかったことが原因でした。
ありがとうございました。

チョンボ

unread,
Feb 17, 2014, 1:08:38 AM2/17/14
to android-g...@googlegroups.com
fkm様
毎度お世話になっております。

ご指摘の通りgetSupportFragmentManagerが原因でした。
大変助かりました。
ありがとうございました。
Reply all
Reply to author
Forward
0 new messages