gpt4 book ai didi

android - 不使用newInstance/setArguments直接在Activity中创建DialogFragment是否正确?

转载 作者:行者123 更新时间:2023-11-30 02:41:34 25 4
gpt4 key购买 nike

将参数传递给 DialogFragment 的“学术”方法是使用 setArguments(.) 的 newInstance 方法。但为了让事情变得简单,可以简单地:

class D extends DialogFragment{
public Context ctx;
public D newInstance(Context c){
D d = new D();
d.ctx = c;
//...
return d;
}
}

或者这在 Activity 代码中也是可能的

D d = new D();
d.some_data = other_data;
d.show(...);

那么为什么要使用更不舒服的 newInstance-setArgument 方案呢?

最佳答案

首选使用 arguments 方法,因为参数在方向更改和 fragment 销毁/恢复循环中仍然存在。这意味着如果由于某种原因对话框被销毁并稍后恢复,状态将被保留。如果直接操作字段, fragment 将无法保存其状态。

不使用参数模式是恢复应用程序时随机应用程序崩溃的常见原因。您可以通过转到设备开发人员选项并选中“不保留 Activity ”选项来对此进行测试。

关于android - 不使用newInstance/setArguments直接在Activity中创建DialogFragment是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25674389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com