java - 为共享偏好保存值(value)的关键字段

标签 java android

当我将 View 值保存到共享首选项时,选择“键”值的好方法是什么?

 sPref = getSharedPreferences("Settings",MODE_PRIVATE);
        SharedPreferences.Editor ed = sPref.edit();
        ed.putBoolean("R.id.CashButton",CashButton.isChecked());
        ...
        ed.commit();

现在我使用与“R”路径相同的 key 。 但是,如果我决定更改我的 View id,我应该自己重构我的代码,因为 Android Studio 不会发现这种用法作为字符串。

最佳答案

这样设置并不是一个好的做法。

这主要是一个基于意见的问题,但如果您需要 View ID 作为关键,那么我可以建议一个替代方案。

创建一个 hashmap 并存储一个静态字符串键并将其与 View ID 进行映射。这样您只需更改键即可。

HashMap<Integer, String> mapIdToKey = new HashMap<>();
mapIdToKey.put(R.id.action_settings, "ActionSettingsKey");
.......

将此用作

sPref = getSharedPreferences("Settings",MODE_PRIVATE);
SharedPreferences.Editor ed = sPref.edit()
ed.putBoolean(mapIdToKey.get(R.id.action_settings),CashButton.isChecked());
...
ed.commit();

关于java - 为共享偏好保存值(value)的关键字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46015953/

相关文章:

java - Log4j2 回滚后始终写入同一个文件

java - IntelliJ maven 项目生成的源未获取(仅部分)

android - CheckedTextView 不响应点击

android - 从 fragment 中的 MainActivity 中从 JSON API 获取数据

android - 有人可以真正解释 Resource.Designer.cs 的工作原理吗?

Java - 无法应用 Java 外观

java - 谷歌地图 : Error inflating class fragment

java - 是否可以在同一事务中捕获运行时异常并引发应用程序异常? (ejb)

android - Play 商店中应用更新的大小

android - getChildFragmentManager > beginTransaction > 替换 > 提交 : no result