2017-09-02 50 views
1

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

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

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

+1

创建类的内部静态字符串。 static final String MY_KEY =“my_key”; –

+1

我的目标是达到良好的代码可读性,这就是为什么我想使用“视图ID”一样的“关键”。如果我会使静态刺痛它不会使任何东西。可以说,我有查看ID“R.id.Exit”和静态键字符串“退出”,然后我决定改为“R.id.SaveAndExit”,但我的静态键字段保持“退出”,我需要更正我的自我如果我想成为他们一样。这就是为什么我开始寻找一些想法。 – Andrew

回答

0

这不是一个很好的做法来设置这种方式。

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

创建一个散列表并存储一个静态字符串键并将其与视图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(); 
+0

谢谢你的例证。 – Andrew

+0

如果这有帮助,请接受答案 @AndrewKubrik –

+0

如果这不是很好的做法,你能告诉我什么是选择关键值的常用方法。类中的静态字符串? – Andrew