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

ループするときにそのセットからアイテムを削除する場合は、この回答Iteratorに示すように、を使用する必要があります。

または、配列が必要な場合は、次を使用できますSet#toArray()

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

次に、角かっこ(prefStrings[position])を使用してインデックスにアクセスできます。

于 2013-03-09T18:16:39.553 に答える