2 回答

TA貢獻1848條經驗 獲得超2個贊
好的,我會在這里詳細解釋。
15 秒前您使用下面的行創建了一個對話框,我們稱之為object1
EthernetControlFragment.newInstance()
然后 15 秒后,您再次object2
使用上面的行創建一個新對話框,當您關閉它時,您也關閉了這個新對話框object2
。不幸的是,您沒有保留舊對話框的參考,dialog1
這是真正的問題。
解決方案是僅創建一個對象,因此創建類的全局引用EthernetControlFragment
并僅在其為空時才對其進行初始化。這樣你就只有一個對話框。

TA貢獻1824條經驗 獲得超5個贊
我解決了我的問題。調用片段如下:
Fragment prev = ((FragmentActivity) activity).getSupportFragmentManager().findFragmentByTag("ethernet");
if (prev == null) {
ethernetControlFragment.show(((FragmentActivity) activity).getSupportFragmentManager(), "ethernet");
ethernetControlFragment.setCancelable(false);
}
并像這樣解雇:
Fragment prev = ((FragmentActivity) activity).getSupportFragmentManager().findFragmentByTag("ethernet");
if (prev != null) {
EthernetControlFragment df = (EthernetControlFragment) prev;
df.dismiss();
}
我認為這些方法是調用和消除片段最可靠的方法。
添加回答
舉報