用于将值保存到共享首选项的关键字段

时间:2017-09-02 16:38:36

标签: java android

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

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

现在我使用的是像“R”路径一样的Key。 但是如果我决定更改我的视图ID,我应该自己重构我的代码,因为Android Studio不会将此用法视为字符串。

1 个答案:

答案 0 :(得分:0)

设置这种方式不是一个好习惯。

这主要是基于意见的问题,但如果您需要将视图ID作为关键,那么我可以提出另一种选择。

创建一个hashmap并存储一个静态字符串键并将其映射到视图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();