gpt4 book ai didi

android - 在 onSaveInstanceState 之后无法执行此操作 - DialogFragment

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:53 26 4
gpt4 key购买 nike

我已经覆盖了 onSavedInstanceState 并删除了 super,我没有做任何交易,更不用说易变函数或异步函数中的交易了。

我在自定义回调“onUserExistsListener”中调用它

        @Override
public Boolean userExists(Boolean exists) {
if (exists) {


}
else
{
AlertDialogFragment Frag = AlertDialogFragment.newInstance(0, null);
Frag.show(getSupportFragmentManager(), "warndialog");
}
};

是否已尝试其他 SO 问题中建议的所有内容,但仍未找到解决方案?有人吗?

代码:

AlertDialogFragment Frag = AlertDialogFragment.newInstance(0, null);
Frag.show(getSupportFragmentManager(), "warndialog");

过程:

OnCreate: (LoadNames 函数)

LoadNames 回调 -> 显示对话框。

进一步:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

add_name_to_db();
}

功能:

public void add_name_to_db() {
Details.checkNameExists(user_txt.getText().toString());
Details.setOnUserExistsListener(new onUserExistsListener() {

@Override
public Boolean userExists(Boolean exists) {

if (exists)
{

} else {

runOnUiThread(new Runnable() {
@Override
public void run() {
AlertDialogFragment Frag = AlertDialogFragment.newInstance(0, null);
Frag.show(getSupportFragmentManager(), "warndialog");

}

});

}
} else {
Toast.makeText(getApplicationContext(), "This is not a valid KIK username",
Toast.LENGTH_SHORT).show();
}

return exists;
}

});

}

最佳答案

调用 Frag.show(getSupportFragmentManager(), "warndialog");您实际上正在执行 fragment 事务(请参阅 show())。

如果调用了 Activity 的 onSaveInstanceState() 方法,当您尝试显示对话框时将抛出 IllegalStateException。您需要更改代码以确保在显示对话框 fragment 时,您是在恢复 Activity 状态(即 onPostResume())之后这样做的。看这个blog post获取更多信息。

您还可以提交事务允许状态 loss ;

关于android - 在 onSaveInstanceState 之后无法执行此操作 - DialogFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21295991/

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