第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對話框和方向更改后更新 RecyclerView

對話框和方向更改后更新 RecyclerView

德瑪西亞99 2023-05-24 16:32:03
我有一個只使用一個活動的應用程序。在里面,我加載了一個帶有 recyclerview 的片段。recyclerview 中的每個項目都是一個對話框片段。用戶可以更改項目,因此當對話框關閉時,recyclerview 會更新。我現(xiàn)在遇到的問題是,當應用程序在對話框處于活動狀態(tài)時旋轉時,recyclerview 在對話框關閉后不會更新。我的對話框在被銷毀時會與應用程序中的所有內容一起重新創(chuàng)建,因此我懷疑 dismisslistener 在重新創(chuàng)建時會被銷毀。該對話框公開了一種方法來設置 dismisslistener,然后覆蓋該事件以檢查是否已設置。public void setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) {    this.onDismissListener = onDismissListener;}@Overridepublic void onDismiss(DialogInterface dialog) {    super.onDismiss(dialog);    if (onDismissListener != null) {        onDismissListener.onDismiss(dialog);    }}然后我在onViewBindHolderrecyclerview中設置了一個 dismisslistenereditor.setOnDismissListener(dialog -> {    recycler.getAdapter().notifyDataSetChanged();}我不確定為什么會發(fā)生這種情況,但似乎在更改方向并重新創(chuàng)建所有內容之后,recyclerview 從未更新過。我發(fā)現(xiàn)該方法仍然被調用,因為在 ondismisslistener 內部是另一個函數(shù),它更新了另一個視圖,getView().findViewById()然后由于返回 null 而使應用程序崩潰getView。我在這里找不到關于此的任何其他帖子。有誰知道我如何修復 dismisslistener 或任何其他等待 dialogfragment 關閉的方法?
查看完整描述

2 回答

?
月關寶盒

TA貢獻1772條經驗 獲得超5個贊

您是否已將 android:configChanges="orientation|screenSize" 添加到 AndroidManifest 中的活動中?否則嘗試 (onRestoreInstanceState() 和 onSaveInstanceState()



查看完整回答
反對 回復 2023-05-24
?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

好吧,我發(fā)現(xiàn)出了什么問題。重新創(chuàng)建時,對話框會丟失所有變量,就像其他所有內容一樣。

理論上可以將這些變量保存在包中并在重新創(chuàng)建時再次獲取它們,但我還沒有找到使用 OnClickListener 執(zhí)行此操作的方法,因為傳遞給包的對象必須是可序列化或可解析的。

因此,通過檢查 OnCreate,當對話沒有任何變量時,我的對話現(xiàn)在就被取消了。


查看完整回答
反對 回復 2023-05-24
  • 2 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號