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();
}
我认为这些方法是调用和消除片段最可靠的方法。
添加回答
举报