gpt4 book ai didi

java - 在 Android 中更改主题 (Android Studio)

转载 作者:行者123 更新时间:2023-12-01 10:20:58 26 4
gpt4 key购买 nike

我制作了 4 个按钮。每个按钮都可以使用 Something.changeToTheme(this, Something.BLACK); 将背景颜色更改为不同的颜色。它工作正常,但在我关闭应用程序并重新启动主题后始终设置为默认值。有没有办法保存上一个 session 的背景并在重新打开应用程序时查看?

最佳答案

将您的开关更改为:

switch (cTheme)
{
case BLACK:
int myTheme = R.style.Default
activity.setTheme(myTheme);

//Save your activity theme color
saveTheme(myTheme);
break;

case YELLOW:
int myTheme = R.style.Green
activity.setTheme(myTheme);

//Save your activity theme color
saveTheme(myTheme);
break;
}

并将您的onActivityCreateSetTheme(Activity Activity)更改为:

public static void onActivityCreateSetTheme(Activity activity, Int cTheme)

保存方法

public void saveTheme(int theme)
{
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedPreferences.edit();
prefEditor.putInt("Theme",theme);
}

加载方法

public int loadTheme(){
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);

//Load theme color
int theme = sharedPreferences.getInt("Theme",Color.RED); //RED is default color, when nothing is saved yet

return theme;
}

重要提示:调用loadTheme() 之前 setContentView(),以便您的onCreate() 应该是这样的:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int theme = loadTheme(); //Load your theme here!!!!
CustomazationProcess.onActivityCreateSetTheme(this, theme);
setContentView(R.layout.something1);

findViewById(R.id.black).setOnClickListener(this);
findViewById(R.id.yellow).setOnClickListener(this);
}

希望这对你有帮助

关于java - 在 Android 中更改主题 (Android Studio),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35629076/

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