阅读数组共享首选
问题描述:
即时通讯使用MultiSelectListPreference和值保存在阵列上..阅读数组共享首选
如何读取?
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
Set<String> a = pref.getStringSet("tabs", null);
for (int i = 0; i < a.size(); i++) {
Log.d("salida", a[i]);
}
我得到这个错误:类型的表达式必须是一个数组类型,但它解决了设置
答
您要使用的Set
,并且因为它不是一个数组,方括号([]
)不能用于访问索引。
方便地从Set
读取的值,使用增强的for循环:
for (String str: a){
Log.d("salida", str);
}
如果你想通过删除从该设置项为你循环,你将不得不使用一个Iterator
,如图所示在this的答案。
或者,如果你想要的阵列,可以使用Set#toArray()
:
String [] prefStrings = a.toArray(new String[a.size()]);
然后可以使用方括号(prefStrings[position]
)来访问的索引。
方括号表示法只适用于数组 – nicopico 2013-03-09 18:21:56
行的错误? – madlymad 2013-03-09 18:52:32