新しいView
クラスを作りました。そのクラス内で にアクセスする必要がありますが、そのFragmentManager
方法がわかりません。
FragmentManager
コンテキストからにアクセスできますか?
CustomView extends LinearLayout
新しいView
クラスを作りました。そのクラス内で にアクセスする必要がありますが、そのFragmentManager
方法がわかりません。
FragmentManager
コンテキストからにアクセスできますか?
CustomView extends LinearLayout
指定された Context が Activity (ハニカム後) または FragmentActivity (ハニカム前) を拡張する場合のみ。
その場合、リフレクションまたは try-catch を使用したアクティビティであることを 100% 確認する必要があります。
try{
final Activity activity = (Activity) context;
// Return the fragment manager
return activity.getFragmentManager();
// If using the Support lib.
// return activity.getSupportFragmentManager();
} catch (ClassCastException e) {
Log.d(TAG, "Can't get the fragment manager with this");
}
リファクタリングをお勧めすると思ったので、 aView
は実際にはものを表示するためのものであり、実際にアプリの状態を変更するべきではありませんが、それは私の意見です。
サポート フラグメントを使用している場合、おそらく実際には次のことが必要になります。
try {
FragmentManager fragmentManager = ((FragmentActivity) context).getSupportFragmentManager();
} catch (ClassCastException e) {
Log.e(TAG, "Can't get fragment manager");
}
これは私のために働いたものです:
Context mContext;
...
//Get FragmentManager
FragmentManager fragmentManager = ((Activity) mContext).getFragmentManager();
(もちろん、最初に mContext を初期化する必要があります)