DialogFragmentの開封を2回防ぎたいと思っています。ここに私がしていることがあります:AndroidでDialogFragment openingが2回開かれないようにする
私は自分の断片のインスタンスを1つだけ保持しようとします。私が作成し、このように私のフラグメントを追加します。
//MyFragment.java
public static MyFragment mInstance;
public static void instantiateFragment() {
MyFragment myFragment = MyFragment.getInstance();
if(!myFragment.isAdded()) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(myFragment, TAG);
ft.commit();
}
}
private static MyFragment getInstance() {
if(mInstance == null) {
mInstance = new MyFragment();
}
return mInstance;
}
そして、ボタンがクリックされたとき、私は意図的にこのように二回の断片を追加しよう:
MyFragment.instantiateFragment();
MyFragment.instantiateFragment();
しかし、私はそのことについてIllegalStateException: Fragment already added.
任意のアイデアを得ますか?
ありがとうございました。
public static void instantiateFragment() {
Fragment myFragment = getSupportFragmentManager().findFragmentByTag(TAG);
if (myFragment == null) {
myFragment = MyFragment.getInstance();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(myFragment, TAG);
ft.commit();
}
}
あなたはエラーを受け取った理由で、同じフラグメントを処理します。 –
@DivyeshなぜmyFragment.isAdded()は2番目の呼び出しでfalseを返しますか?私はそれを取得しません。 – yrazlik