亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何重新創建之前活動中的按鈕?

如何重新創建之前活動中的按鈕?

HUWWW 2023-12-13 17:09:34
我在 Android Studio 中遇到代碼問題。我有ActivityA和ActivityB。我有ActivityA按鈕。ActivityB是關于設置的。例如,我可以選擇應用程序的主題。全部使用完成SharedPreferences。如果我使用以下代碼將主題更改為 DARK:Button Settings = (Button) findViewById(R.id.settings); Settings.setTextColor(Color.BLACK);      Settings.setBackgroundResource(R.drawable.shapestylethis3);然后我按返回鍵繼續ActivityA,然后按鈕就改變了。現在,當我進入ActivityB并且我想改回主題LIGHT時,我想恢復此默認按鈕ActivityA:style="@android:style/Widget.Button.Small"但我不知道如何實現這一目標。ActivityB單擊“保存”按鈕后立即發生變化,因為除了保存到SharedPreferences我recreate();還在onClick.但是當我放入recreate()inonResume時ActivityA,它就像一個無限循環。我將非常感謝您幫助我找到解決方案。先感謝您。
查看完整描述

1 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

您可以輕松地避免使用變量或變量(您可能更喜歡這兩個中的任何一個)recrate()進入無限循環。ActivityApublic staticSharedPreference


讓我們有一個如下所示public static的變量。ActivityA


public static boolean shouldRecreate = false;

現在,當您更改樣式時ActivityB,請設置ActivityA.shouldRecreate = true且不要調用recreate().


現在,在onResume您的函數中ActivityA檢查 的值shouldRecreate并相應地調用該recreate()函數。


@Override

protected void onResume() {

    super.onResume();


    if (shouldRecreate) {

        recreate();

        shouldRecreate = false;

    }

}

希望有幫助!


查看完整回答
反對 回復 2023-12-13
  • 1 回答
  • 0 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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