我有結果片段。該onViewCreated()方法有一些關于保存結果的邏輯。如果用戶獲得了成就,則會出現一個按鈕,他可以轉到成就片段。但是,當用戶從那里按下后退按鈕時,他會回傳到 ResultFragment 并再次觸發保存,這會導致結果重復。我該如何處理這種行為?我可以檢查結果是否重復,但這會隱藏癥狀并不能解決問題。
uj5u.com熱心網友回復:
如果您想防止應用程式觸發結果的保存,這會導致回傳時出現重復,請使用Boolean。
下面是一個簡化的偽代碼,您可以使用并適應您的專案:
結果片段:
Boolean resultObtained = false // place it somewhere that is not reset when going back
if (resultObtained == true) {
// do not save result
}
else {
// save result
}
回傳主頁時,布林值可以重置為false 。雖然為真,但如果使用Boolean將函式嵌套在 if 陳述句中,則ResultFragment不應重復結果。
對于Boolean,您可以將其添加到其他地方并使其成為static,因此可以從所有片段中輕松訪問它。此外,您可以保留相同的片段,但您需要撰寫更多代碼以確保回傳時不會再次重置為 false。或者,您可以將其直接放在AchievementFragment中并將其設為靜態,以便在您回傳時保持真實。但是,如何在代碼中調整它取決于您。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/529192.html
