我有数组值up [] = {0,0,0,0,0}和view =“adult”这两个值我希望从sharedpreference中存储和检索如何做到这一点......
答案 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