Android 設定の現在の値を設定概要に表示するにはどうすればよいですか? 質問する

Android 設定の現在の値を設定概要に表示するにはどうすればよいですか? 質問する

これは頻繁に起こるはずです。

ユーザーが Android アプリで設定を編集しているときに、概要で現在設定されている設定値を確認できるようにしたいと思いますPreference

例: 「古いメッセージを破棄する」という設定があり、何日後にメッセージをクリーンアップする必要があるかを指定しているとします。PreferenceActivityユーザーには以下を表示したいとします。

「古いメッセージを破棄する」 <- タイトル

x日後にメッセージをクリーンアップする」 <-まとめここでxは現在のPreference値です

追加クレジット: これを再利用可能にして、タイプに関係なくすべての設定に簡単に適用できるようにします (最小限のコーディングで EditTextPreference、ListPreference などで動作するように)。

ベストアンサー1

ニーズに合うのであれば、これをより一般的なソリューションにする方法があります。

たとえば、すべてのリスト設定でその選択の概要を一般的に表示したい場合は、次のようにonSharedPreferenceChanged実装します。

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    Preference pref = findPreference(key);

    if (pref instanceof ListPreference) {
        ListPreference listPref = (ListPreference) pref;
        pref.setSummary(listPref.getEntry());
    }
}

これは他の設定クラスに簡単に拡張できます。

そして、getPreferenceCountおよびgetPreferenceの機能を使用することで、好みのタイプの全ての好みの要約をそれらの表現に設定しながら好みのツリーをたどる汎用関数を簡単に書くことができます。PreferenceScreenPreferenceCategorytoString

おすすめ記事