这是在Android中保存ArrayList的代码
myAList.add(sEdit.getString("val"+j,""));
通过指示
对于类型sharedPreferences。方法getString(string)是未定义的。
public static void setValuesInSession(Context c,ArrayList<String> myArrayList)
{
SharedPreferences sPrefs=PreferenceManager.getDefaultSharedPreferences(c);
SharedPreferences.Editor sEdit=sPrefs.edit();
for(int i=0;i<myArrayList.size();i++)
{
sEdit.putString("val"+i,myArrayList.get(i));
}
sEdit.putInt("size",myArrayList.size());
sEdit.commit();
}
public static ArrayList<String> getValuesOfSession(Context c)
{
SharedPreferences sPrefs=PreferenceManager.getDefaultSharedPreferences(c);
SharedPreferences.Editor sEdit=sPrefs.edit();
ArrayList<String> myAList=new ArrayList<String>();
int size=sPrefs.getInt("size",0);
for(int j=0;j<size;j++)
{
// Log.i("MYlIST ADD",""+);
myAList.add(sEdit.getString("val"+j,""));
}
return myAList;
}
您正在尝试从编辑器获取字符串值,而不是从共享preferences中检索。
替换
myAList.add(sEdit.getString("val"+j,""));
myAList.add(sPrefs.getString("val"+j,""));
结果
public static ArrayList<String> getValuesOfSession(Context c)
{
SharedPreferences sPrefs=PreferenceManager.getDefaultSharedPreferences(c);
ArrayList<String> myAList=new ArrayList<String>();
int size=sPrefs.getInt("size",0);
for(int j=0;j<size;j++)
{
// Log.i("MYlIST ADD",""+);
myAList.add(sPrefs.getString("val"+j,""));
}
return myAList;
}
并且不建议以" S"开头调用本地变量,因为Android代码样式指南鼓励从M。
尝试这个...
for(int i=0;i<myArrayList.size();i++)
{
sEdit.putString("val"+i,myArrayList.get(i).toString());
}
下面是我的代码..我做的与你一样..工作...
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("Size", languageNames.size());
for(int i=0; i<languageNames.size(); i++)
{
editor.putString("data" + i, languageNames.get(i).toString());
}
editor.putString("ID",id);
editor.putString("Email", email);
editor.putString("Birthday", birthday);
editor.putString("Username", username);
editor.putString("Location", location);
editor.putString("Gender", gender);
editor.commit();
获取数据...
ArrayList<String> languageNames = new ArrayList<String>();
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
int array_size = preferences.getInt("Size", 0);
id = preferences.getString("ID", "");
username = preferences.getString("Username", "");
email = preferences.getString("Email", "");
birthday = preferences.getString("Birthday", "");
location = preferences.getString("Location", "");
gender = preferences.getString("Gender", "");
languageNames.clear();
for(int i=0; i<array_size; i++)
{
languageNames.add(preferences.getString("data" + i, "").toString());
}
public static ArrayList<String> getValuesOfSession(Context c) {
SharedPreferences sPrefs=PreferenceManager.getDefaultSharedPreferences(c);
ArrayList<String> myAList=new ArrayList<String>();
int size=sPrefs.getInt("size",0);
for(int j=0;j<size;j++)
{
// Log.i("MYlIST ADD",""+);
myAList.add(sPrefs.getString("val"+j,""));
}
return myAList;
}