2017-10-09 96 views
-5
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putInt(getString(R.string.saved_high_score), newHighScore); 
editor.commit(); 

它是否足以维持插入顺序?如何维护插入共享​​首选项的顺序?

+2

你是什么意思按插入顺序? – sumit

+1

你的意思是你写了两次相同的密钥? – Henry

+1

我在代码中看不到多个插入。如果只有一个插入,则Therre无序。 –

回答

3

我想你并不完全理解SharedPreferences是如何工作的。没有订单。类似于地图,每个条目都有一个键和一个值。如果使用已存在的键向SharedPreferences写入值,则新值将覆盖旧值。如果您从SharedPreferences中读取数据,则顺序无关紧要,因为您使用密钥读取数据。您无法迭代SharedPreferences中的数据。

所以,当你的意图是只保存最新/最高分时,答案是:是的,该代码将起作用。但是,如果您想保存高分列表等内容,您的解决方案将无法使用。然后,您将需要唯一的键来保存所有要保存的值。