我正在使用 Utills 类来更改单击按钮时的主题,有 8 个带有图像背景的按钮。这是我的实用程序类
public class Utills {
public static boolean isPurchsed =true;
private static int sTheme;
public final static int THEME_DEFAULT = 0;
public final static int THEME_ONE = 1;
public final static int THEME_TWO = 2;
public final static int THEME_THREE = 3;
public final static int THEME_FOUR = 4;
public final static int THEME_FIVE = 5;
public final static int THEME_SIX = 6;
public final static int THEME_SEVEN = 7;
/**
* Set the theme of the Activity, and restart it by creating a new Activity of the same type.
*/
public static void changeToTheme(Activity activity, int theme)
{
sTheme = theme;
activity.finish();
activity.startActivity(new Intent(activity, activity.getClass()));
}
/** Set the theme of the activity, according to the configuration. */
public static void onActivityCreateSetTheme(Activity activity)
{
switch (sTheme)
{
default:
case THEME_DEFAULT:
activity.setTheme(R.style.MyTheme);
break;
case THEME_ONE:
activity.setTheme(R.style.MySecondTheme);
break;
case THEME_TWO:
activity.setTheme(R.style.MyThirdTheme);
break;
case THEME_THREE:
activity.setTheme(R.style.MyFourthTheme);
break;
case THEME_FOUR:
activity.setTheme(R.style.MyFifthTheme);
break;
case THEME_FIVE:
activity.setTheme(R.style.MySixthTheme);
break;
case THEME_SIX:
activity.setTheme(R.style.MySeventhTheme);
break;
case THEME_SEVEN:
activity.setTheme(R.style.MyLastTheme);
break;
}
}
这是活动课
public class ChangeBackgroundActivity extends AppCompatActivity {
Button bck1, bck2, bck3, bck4, bck5, bck6,bck7,bck8;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Utills.onActivityCreateSetTheme(this);
setContentView(R.layout.activity_change_background);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_changebackground);
setSupportActionBar(toolbar);
bck1 = (Button)findViewById(R.id.btn_bck1);
bck1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Utills.changeToTheme(ChangeBackgroundActivity.this, Utills.THEME_DEFAULT);
}
});
bck2 = (Button)findViewById(R.id.btn_bck2);
bck2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Utills.changeToTheme(ChangeBackgroundActivity.this, Utills.THEME_ONE);
}
});
bck3 = (Button)findViewById(R.id.btn_bck3);
bck3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Utills.changeToTheme(ChangeBackgroundActivity.this, Utills.THEME_TWO);
}
});
bck4 = (Button)findViewById(R.id.btn_bck4);
bck4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Utills.changeToTheme(ChangeBackgroundActivity.this, Utills.THEME_THREE);
}
});
bck5 = (Button)findViewById(R.id.btn_bck5);
bck5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Utills.changeToTheme(ChangeBackgroundActivity.this, Utills.THEME_FOUR);
}
});
bck6 = (Button)findViewById(R.id.btn_bck6);
bck6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Utills.changeToTheme(ChangeBackgroundActivity.this, Utills.THEME_FIVE);
}
});
bck7 = (Button)findViewById(R.id.btn_bck7);
bck7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Utills.changeToTheme(ChangeBackgroundActivity.this, Utills.THEME_SIX);
}
});
bck8 = (Button)findViewById(R.id.btn_bck8);
bck8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Utills.changeToTheme(ChangeBackgroundActivity.this,Utills.THEME_SEVEN);
}
});
}
当我关闭我的应用程序并重新启动它时,整个应用程序上再次设置了默认主题。如何从 Utills 类存储应用程序的主题,所以每当我关闭我的应用程序并再次重新启动它时,所选主题将为整个应用程序设置。
你需要在某个地方坚持你的主题。例如,您可以使用SharedPreferences。比检索您的主题并将其设置为 Activity 在 setContentView 之前。
所以。你需要添加保存changeToTheme(Activity activity, int theme)
和检索onActivityCreateSetTheme(Activity activity)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句