gpt4 book ai didi

java - 如何在 SharedPreferences 中保存我的应用程序背景?

转载 作者:行者123 更新时间:2023-12-02 12:09:00 24 4
gpt4 key购买 nike

我有一个带有按钮的 fragment ,可以为整个应用程序设置背景主题。我已经设置了一个界面,以便 fragment 可以告诉主要 Activity 设置背景或删除背景,具体取决于用户单击的按钮。

问题是每次打开应用程序时,背景都不会保存,需要再次切换。我已经看到这可以通过 SharedPreferences 解决,但在这里实现它让我感到困惑

在我的 fragment 中这显示了两个按钮,将值 1 或 2 发送到主 Activity 以切换背景

enable = (Button) rootView.findViewById(R.id.enable);
enable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.themechanged(2);
enable.setVisibility(View.GONE);
disable.setVisibility(View.VISIBLE);

}
});
disable = (Button) rootView.findViewById(R.id.disable);
disable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.themechanged(1);
disable.setVisibility(View.GONE);
enable.setVisibility(View.VISIBLE);
}
});

在我的主要 Activity 中这从监听器获取值并根据该值切换背景

    @Override

public void themechanged(int value) {

if(value==2) {
if (isDarkTheme) {
appbackground.setVisibility(View.GONE);
shade.setVisibility(View.GONE);
} else {
appbackground.setVisibility(View.VISIBLE);
shade.setVisibility(View.VISIBLE);
}
}else if(value!=2||value==1){
appbackground.setVisibility(View.GONE);
shade.setVisibility(View.GONE);
}
}

最佳答案

使用SharedPrefence来存储主题的值,例如-:

全局变量

SharedPreferences pref;
SharedPreferences.Editor editor;

OnCreateView()

pref = getActivity().getSharedPreferences("Theme", Context.MODE_PRIVATE);
editor = pref.edit();

现在,在按钮点击上存储首选项

enable = (Button) rootView.findViewById(R.id.enable);
enable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

editor.putInt("yourTheme", 2);
editor.commit();
listener.themechanged(2);
enable.setVisibility(View.GONE);
disable.setVisibility(View.VISIBLE);

}
});
disable = (Button) rootView.findViewById(R.id.disable);
disable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editor.putInt("yourTheme", 1);
editor.commit();
listener.themechanged(1);
disable.setVisibility(View.GONE);
enable.setVisibility(View.VISIBLE);
}
});

然后,在MainActivityOnCreate()中,您可以检查如下

SharedPreferences pref = getSharedPreferences("Theme", MODE_PRIVATE);
value= pref.getInt("yourTheme", 1);//1 is default value

if(value==2) {
if (isDarkTheme) {
appbackground.setVisibility(View.GONE);
shade.setVisibility(View.GONE);
} else {
appbackground.setVisibility(View.VISIBLE);
shade.setVisibility(View.VISIBLE);
}
}else if(value==1){
appbackground.setVisibility(View.GONE);
shade.setVisibility(View.GONE);
}

完成,可能会有帮助

关于java - 如何在 SharedPreferences 中保存我的应用程序背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46689300/

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