【发布时间】:2019-12-23 15:00:11
【问题描述】:
我的布局可以更改背景颜色、色调列表和文本颜色以实现暗/亮模式功能。
只有两种设置(深色/浅色),主题中使用的颜色在我的代码顶部引用,如下所示:
int orangeTheme = Color.rgb(253,135,0);
int blueTheme = Color.rgb(0,0,254);
int whiteTheme = Color.rgb(213,214,214);
int blackTheme = Color.rgb(0,0,0);
这样设置:(黑暗模式)
gridLayout.setBackgroundColor(blackTheme);
buttonA.setBackgroundTintList(ColorStateList.valueOf(blueTheme));
buttonA.setTextColor(blackTheme);
buttonB.setBackgroundTintList(ColorStateList.valueOf(orangeTheme));
buttonB.setTextColor(blackTheme);
seekBar.setProgressTintList(ColorStateList.valueOf(blueTheme));
seekBar.setThumbTintList(ColorStateList.valueOf(blueTheme));
并像这样恢复:(灯光模式)
gridLayout.setBackgroundColor(orangeTheme);
buttonA.setBackgroundTintList(ColorStateList.valueOf(blackTheme));
buttonA.setTextColor(ColorStateList.valueOf(whiteTheme));
buttonB.setBackgroundTintList(ColorStateList.valueOf(blueTheme));
buttonB.setTextColor(ColorStateList.valueOf(orangeTheme));
seekBar.setProgressTintList(ColorStateList.valueOf(blackTheme));
seekBar.setThumbTintList(ColorStateList.valueOf(blackTheme));
使用共享首选项,如何保存和加载这些值?
public void saveData() {
SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.apply();
Toast.makeText(FavouriteActivity.this, "Data saved", Toast.LENGTH_SHORT).show();
}
public void loadData() {
SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFS,MODE_PRIVATE);
Toast.makeText(FavouriteActivity.this, "Data loaded", Toast.LENGTH_SHORT).show();
}
public void updateViews() {
Toast.makeText(FavouriteActivity.this, "Views updated" , Toast.LENGTH_SHORT).show();
}
我对 Android 和 Java 的经验非常少,我见过的所有保存状态教程都处理文本视图内容或开关的位置,仅此而已。这就是我问的原因 - 我仍然不确定如何保存或引用大多数内容,但目前我主要关注以下内容:
- 约束布局背景颜色
- 网格布局背景颜色
- 按钮背景颜色
- 按钮背景色调
- 按钮文字颜色
- 按钮可见性
如何在共享首选项保存/加载功能中引用和检索这些方面?
有没有更好的方法来保存和加载这些方面?
感谢所有帮助。
【问题讨论】:
-
我回答了你的两个问题 OP,看看他们是否能帮助你:)
-
是的,对不起,我现在只是走一条稍微不同的路线,但肯定会在未来实现这一点,谢谢 :)
标签: android layout save load sharedpreferences