android共享首选项存储多个值;

时间:2012-11-26 13:36:28

标签: android sharedpreferences

我使用以下方法创建了SharedPreference obj: 注意:在相同的pref文件名下创建首选项数

public static Sting name = "abx"; //pref file name
          spo = context.getsharedpreference(name , mode_private);
          editor = spo.edit(); //get the editor associated with pref obj

         Map<String, String> test= new HashMap<String, String>();//create a map
    test.put("1", "abc");//fill the values
    test.put("2", "efg");//used map because values are stored in key -value pairs
    test.put("3", "ghj");
       for (String s : test.keySet()) {
        // use the name as the key, and the icon as the value
        editor.putString(s, nameIcons.get(s));//use the key as preference name
    }

    editor.commit();//commit the preferences

我有疑问,如果我错了,请纠正我,创建名为“abz”的SharedPreference文件,并在此文件中将首选项值存储为键 - 值对,或者如果编辑器obj为每个键创建新的首选项文件,什么是在sharedprefences对象创建时使用提供pref文件名?

2 个答案:

答案 0 :(得分:1)

基本上,您可以为给定的应用程序创建多个首选项文件。有一些原因可以想象这样做,如果您有多个帐户,最好的情况。您可以标记一组首选项“account1”和另一个“account2”。只需跟踪您所在的帐户,就可以共享代码而不会产生大量复杂性。

除非您专门使用此功能,否则我建议您使用context.getApplicationContext().getPackageName()作为名称,因为它几乎可以在任何地方使用。

答案 1 :(得分:0)

基本上每个循环内部发生的事情: - 优先级中只存储一个值,而不是使用代码中为地图中的每个值提供的名称创建SharedPreferance文件。

在创建sharedPreferance期间使用Giving文件名,以便可以在应用程序的其他部分检索它并可以访问其值。