[英]How to recreate buttons in previous activity?
我對 Android Studio 中的代碼有疑問。
我有ActivityA
和ActivityB
。
在ActivityA
我有按鈕。 ActivityB
是關於設置的。 例如,我可以選擇應用程序的主題。 全部使用SharedPreferences
完成。
如果我使用此代碼將主題更改為 DARK:
Button Settings = (Button) findViewById(R.id.settings);
Settings.setTextColor(Color.BLACK);
Settings.setBackgroundResource(R.drawable.shapestylethis3);
然后我按回 go o ActivityA
- 然后更改按鈕。
現在,當我在ActivityB
並且我想改回主題LIGHT
時,我想在ActivityA
上取回這個默認按鈕:
style="@android:style/Widget.Button.Small"
但我不知道如何實現這一目標。 ActivityB
在單擊“保存”按鈕后立即發生變化,因為除了保存到SharedPreferences
之外,我還使用了recreate();
在onClick
中。
但是當我將recreate()
放在ActivityA
的onResume
中時,它就像一個無限循環。 我將非常感謝幫助我找到解決方案。
先感謝您。
您可以使用public static
變量或SharedPreference
(您可能更喜歡這兩個中的任何一個)輕松避免recrate()
進入ActivityA
中的無限循環。
讓我們在ActivityA
中有一個public static
變量,如下所示。
public static boolean shouldRecreate = false;
現在,當您從ActivityB
更改樣式時,設置ActivityA.shouldRecreate = true
並且不要調用recreate()
。
現在在ActivityA
的onResume
shouldRecreate
中檢查 shouldRecreate 的值並相應地調用recreate()
function。
@Override
protected void onResume() {
super.onResume();
if (shouldRecreate) {
recreate();
shouldRecreate = false;
}
}
希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.