我是Android的新手,想研究如何从Preference中保存和检索String []。现在我有两个代码示例。 这个用于保存
void saveText() {
sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
Editor ed = sPref.edit();
ed.putString(SAVED_TEXT, position_name);
ed.commit();
}
和position_name作为EditText输入。首先,它应保存在String数组中,然后保存在Preferences中的String数组中。 对于加载我有以下代码
void loadText() {
sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
String position_name = sPref.getString(SAVED_TEXT, "");
bazar.add(new Bazar(position_name, R.drawable.unread));
}
这两种方法都是静态的,但我希望它们能够处理动态字符串类型数据。简而言之,我输入一些数据,它应该存储在String数组中,然后存储在Preferences中的String数组,当我加载我的活动时,我想要检索那些存储的数据。试过不同的方法没有结果。你能帮我解决这个问题吗?
答案 0 :(得分:1)
您可以使用API级别11及更高级别的SharedPreferences存储字符串集。请参阅getStringSet()
和putStringSet()
在11级之前的API级别中,您可以使用某种黑客攻击。例如,如果需要在字符串“stringArray”下存储字符串数组,则可以使用putString和键“stringArray.1”,“stringArray.2”等保存数组中的每个字符串,依此类推。
答案 1 :(得分:0)
你不能作为共享prefs只支持原始变量,至少不能支持api 11下的任何东西。为了降低你可以做的是逐步完成整个数组并将它单独放在这里{{3} }
我个人所做的是将序列化对象,我猜这个对象分为0和1。然后你把它放在那里。您需要获得序列化课程或自己制作一个 http://www.sherif.mobi/2012/05/string-arrays-and-object-arrays-in.html?m=1
但是,对你感到羞耻。一个简单的搜索就可以得到这些结果答案 2 :(得分:0)
将其保存为字符串by(逗号)分隔符,并在获取时使用split()
string str="";
str += "item1,";
.
.
在SharePreference中设置String str并commit() 要在数组中获得相同的内容:从SharePreference获取prefStr
String[] Array= prefStr.split(",");
希望它会对你有所帮助。