1

以下のコードには、新しいキー値をファイル「contact」に追加するメソッドがあります。私の質問は、ファイル「contact」内のすべてのキーのある種のループによって特別な値を検索し、値の1つが特別な値と等しいかどうかを確認するメソッドを作成できるかどうかです? 助けてください!ありがとう!

String filename = "contacts";
SharedPreferences someInfo = getSharedPreferences(filename, 0);

public void addSharedPref(String key, String value){

SharedPreferences.Editor editor = someInfo.edit();
editor.putString(key, value);
editor.commit();
}
4

3 に答える 3

4

SharePreference.getAll() を使用して Map を返し、Map のいずれかのメソッドを使用して特別な値を検索します。

ただし、これは SharedPreference が行うように設計されたものではありません。あなたがやろうとしていることを行うためのより良い方法があるかもしれません。どんな仕事でもモットーは「ドライバーで釘を打つな」です。

于 2013-02-25T21:14:58.543 に答える
2

共有設定のすべての値を取得するには:

    SharedPreferences sp= context.getSharedPreferences("contacts", Context.MODE_PRIVATE);
    Map<String,?> keys = sp.getAll();
    for(Map.Entry<String,?> entry : keys.entrySet()){
        Log.d("map values",entry.getKey() + ": " + entry.getValue().toString()); 
}
于 2013-02-25T22:28:27.813 に答える
0

辞書と同様SharedPreferenceに、リストのような組み込みのものを使用してアクセスする方法はありません。ものにアクセスするには、インデクサー (名前と値のペアの名前) が必要です。

あなたができることは、SharedPreferenceファイルに直接アクセスして、その方法で見つけることです。

SharedPreference探しているにアクセスして、その周りにエラー処理を追加してデフォルトを使用することをお勧めします。

于 2013-02-25T20:54:26.090 に答える