如何在sharedpreference中存储一个字符串和数组值?

时间:2011-10-05 04:03:52

标签: android

我有数组值up [] = {0,0,0,0,0}和view =“adult”这两个值我希望从sharedpreference中存储和检索如何做到这一点......

3 个答案:

答案 0 :(得分:1)

假设您有一个名为MY_PREFS的应用程序首选项列表,我会这样做:

SharedPreferences settings = getSharedPreferences(MY_PREFS, 0);
      SharedPreferences.Editor editor = settings.edit();
      editor.putInt("arrayLength",up.size());
      for(int i=0; i<up.size(); i++){
         editor.putInt("up"+String.valueOf(i), up[i]);
      }
      editor.putString("view", "adult");

要检索它们,请执行以下操作:

   SharedPreferences settings = getSharedPreferences(MY_PREFS, 0);
   int arraySize = settings.getInt("arrayLength");
   int up[] = new int[arraySize];
   for(int i=0; i<arraySize; i++){
      up[i] = settings.getInt("up"+String.valueOf(i));
   }
   String view = settings.getString("view");

答案 1 :(得分:1)

你可以通过简单的方式来做,就像这样

SharedPreferences settings = getSharedPreferences("pref_name", 0);
      SharedPreferences.Editor editor = settings.edit();

     String values="";

      for(int i=0; i<yourArray.length; i++){
         values+=","+Integer.toString(yourArray[i]);
      }

      editer.putString("array",values);
      editor.putString("view", "adult");

获取这些值,

 SharedPreferences settings = getSharedPreferences("pref_name", 0);

 String[] strArray=settings.getString("array").split(",");
int[] yourArray=new int[strArray.length];

for(int i=0;i<strArray.length;i++){
   yourArray[i]=Integer.toParseInt(strArray[i]);
}

答案 2 :(得分:0)

据我所见,你无法直接在共享首选项中存储数组。但是,您可以使用for循环来保存具有增加名称的int,并在需要时以相同的方式将其调用并将其存储到另一个数组中。

for(int i=0; i<numInYourArray; i++){
editor.putInt("up"+i, up[i]);
}

如果您不确定如何使用共享首选项,请查看here

相关问题