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]);
    }

我收到此错误:表达式的类型必须是数组类型,但它解析为 Set

4

1 回答 1

3

您想使用Set,并且由于它不是数组,因此方括号 ( []) 不能用于访问索引。

要轻松地从 中读取值Set,请使用增强的 for 循环:

for (String str: a){
  Log.d("salida", str);
}

如果要在循环时从该 Set 中删除项目,则必须使用Iterator,如this answer所示。

或者,如果你想要一个数组,你可以使用Set#toArray()

String [] prefStrings = a.toArray(new String[a.size()]);

然后您可以使用方括号 ( prefStrings[position]) 来访问索引。

于 2013-03-09T18:16:39.553 回答