在按钮上单击动态更改整个应用程序的主题并存储它

乌尔维乔希

我正在使用 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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在按钮上单击打开instagram应用程序

来自分类Dev

如何在按钮上单击打开instagram应用程序

来自分类Dev

在Application类中更改整个应用程序的主题

来自分类Dev

以首选项应用全屏或将应用程序主题更改为整个应用程序

来自分类Dev

如何使主题选择器在整个应用程序中应用更改

来自分类Dev

单击按钮上的Java android应用程序致命异常

来自分类Dev

无法在应用程序上单击按钮

来自分类Dev

单击Web应用程序中的按钮会在按钮后面显示输入,然后无意间专注于输入

来自分类Dev

在电子应用程序中下载并存储文件

来自分类Dev

当我单击按钮时刷新整个用户在WinForms应用程序中输入的数据

来自分类Dev

我可以通过单击按钮本地化我的整个android应用程序吗

来自分类Dev

无法从应用程序的主题更改colorAccent

来自分类Dev

单击按钮和应用程序再次启动时如何交换两个整个活动然后显示交换更改

来自分类Dev

Android更改整个应用程序的字体

来自分类Dev

更改整个本机应用程序的语言

来自分类Dev

在整个应用程序中更改imageview

来自分类Dev

更改整个应用程序的字体

来自分类Dev

更改整个应用程序的背景

来自分类Dev

在按钮上单击更改XML页面中的图像。

来自分类Dev

如何在按钮上单击ios更改UICollectionView的数据?

来自分类Dev

如何播放简介,它仅在安装应用程序并单击按钮时播放?

来自分类Dev

当我单击按钮时,我无法再使用应用程序,直到它结束

来自分类Dev

如何在app.xaml.cs文件中动态更改应用程序的主题

来自分类Dev

如何在app.xaml.cs文件中动态更改应用程序的主题

来自分类Dev

使用引导程序将输入集中在按钮单击上

来自分类Dev

单击动态更改的元素上的按钮

来自分类Dev

单击后动态更改按钮上的名称

来自分类Dev

改变我整个android studio应用程序混乱的主题

来自分类Dev

在初始应用程序负载CakePHP上初始化并存储一个随机数

Related 相关文章

  1. 1

    如何在按钮上单击打开instagram应用程序

  2. 2

    如何在按钮上单击打开instagram应用程序

  3. 3

    在Application类中更改整个应用程序的主题

  4. 4

    以首选项应用全屏或将应用程序主题更改为整个应用程序

  5. 5

    如何使主题选择器在整个应用程序中应用更改

  6. 6

    单击按钮上的Java android应用程序致命异常

  7. 7

    无法在应用程序上单击按钮

  8. 8

    单击Web应用程序中的按钮会在按钮后面显示输入,然后无意间专注于输入

  9. 9

    在电子应用程序中下载并存储文件

  10. 10

    当我单击按钮时刷新整个用户在WinForms应用程序中输入的数据

  11. 11

    我可以通过单击按钮本地化我的整个android应用程序吗

  12. 12

    无法从应用程序的主题更改colorAccent

  13. 13

    单击按钮和应用程序再次启动时如何交换两个整个活动然后显示交换更改

  14. 14

    Android更改整个应用程序的字体

  15. 15

    更改整个本机应用程序的语言

  16. 16

    在整个应用程序中更改imageview

  17. 17

    更改整个应用程序的字体

  18. 18

    更改整个应用程序的背景

  19. 19

    在按钮上单击更改XML页面中的图像。

  20. 20

    如何在按钮上单击ios更改UICollectionView的数据?

  21. 21

    如何播放简介,它仅在安装应用程序并单击按钮时播放?

  22. 22

    当我单击按钮时,我无法再使用应用程序,直到它结束

  23. 23

    如何在app.xaml.cs文件中动态更改应用程序的主题

  24. 24

    如何在app.xaml.cs文件中动态更改应用程序的主题

  25. 25

    使用引导程序将输入集中在按钮单击上

  26. 26

    单击动态更改的元素上的按钮

  27. 27

    单击后动态更改按钮上的名称

  28. 28

    改变我整个android studio应用程序混乱的主题

  29. 29

    在初始应用程序负载CakePHP上初始化并存储一个随机数

热门标签

归档