gpt4 book ai didi

java - 对话框和方向更改后更新 RecyclerView

转载 作者:太空宇宙 更新时间:2023-11-04 09:28:08 25 4
gpt4 key购买 nike

我有一个仅使用一项 Activity 的应用程序。在里面,我使用 recyclerview 加载一个 fragment 。recyclerview 中的每个项目都是一个对话框 fragment 。用户可以更改项目,因此当对话框关闭时回收器 View 会更新。

我现在遇到的问题是,当对话框处于 Activity 状态时旋转应用程序时,对话框关闭后回收器 View 将不会更新。

销毁时,我的对话框会与应用程序中的所有内容一起重新创建,因此我怀疑重新创建时,dismisslistener 会被销毁。

该对话框公开了一种方法来设置解雇监听器,然后覆盖该事件以检查是否已设置。

public void setOnDismissListener(DialogInterface.OnDismissListener 
onDismissListener) {
this.onDismissListener = onDismissListener;
}

@Override
public void onDismiss(DialogInterface dialog) {
super.onDismiss(dialog);
if (onDismissListener != null) {
onDismissListener.onDismiss(dialog);
}
}

然后,我在 recyclerview 的 onViewBindHolder 内设置一个解雇监听器

editor.setOnDismissListener(dialog -> {
recycler.getAdapter().notifyDataSetChanged();
}

我不确定为什么会发生这种情况,但似乎在更改方向并重新创建所有内容后,回收器 View 从未更新。我发现该方法仍然被调用,因为 ondismisslistener 内部有另一个函数,它使用 getView().findViewById() 更新了另一个 View ,然后由于 getView 返回 null,导致应用程序崩溃。

我在这里找不到任何其他与此相关的帖子。

有谁知道我如何修复dismisslistener或者是否有其他方法来等待dialogfragment关闭?

最佳答案

您是否已将 android:configChanges="orientation|screenSize"添加到 AndroidManifest 中的 Activity 中?否则尝试(onRestoreInstanceState() 和 onSaveInstanceState()

关于java - 对话框和方向更改后更新 RecyclerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57435947/

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