2013-03-09 56 views
1

即时通讯使用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]); 
    } 

我得到这个错误:类型的表达式必须是一个数组类型,但它解决了设置

+0

方括号表示法只适用于数组 – nicopico 2013-03-09 18:21:56

+0

行的错误? – madlymad 2013-03-09 18:52:32

回答

3

您要使用的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])来访问的索引。