我想在我的应用程序中添加多个主题,以允许用户在运行时更改应用程序主题。我在网上找到了代码,已成功将其添加到我的应用程序中,但我只能更改一项活动的主题,这并不是我的真正意图。当用户在主题设置活动中更改主题时,我需要将该更改应用到所有活动中。
ThemeActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
themeUtils.onActivityCreateSetTheme(this);
setContentView(R.layout.activity_theme);
blackbtn = findViewById(R.id.blackbutton);
bluebtn = findViewById(R.id.bluebutton);
blackbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
themeUtils.changeToTheme(ThemeActivity.this, themeUtils.BLACK);
}
});
bluebtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
themeUtils.changeToTheme(ThemeActivity.this, themeUtils.BLUE);
}
});
}
ThemeUtils.java
public class themeUtils
{
private static int cTheme;
public final static int BLACK = 0;
public final static int BLUE = 1;
public static void changeToTheme(Activity activity, int theme)
{
cTheme = theme;
activity.finish();
activity.startActivity(new Intent(activity, activity.getClass()));
}
public static void onActivityCreateSetTheme(Activity activity)
{
switch (cTheme)
{
default:
case BLACK:
activity.setTheme(R.style.BlackTheme);
break;
case BLUE:
activity.setTheme(R.style.BlueTheme);
break;
}
红糖糍粑
神不在的星期二
相关分类