12

こんにちは仲間のプログラマー、私は設定アクティビティに少し問題があります。

http://developer.android.com/reference/android/preference/PreferenceActivity.html

設定カテゴリは 1 つだけで、listPreference は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>

<PreferenceCategory android:title="@string/basic_settings" >
    <ListPreference
        android:defaultValue="70"
        android:entries="@array/listArray"
        android:entryValues="@array/listValues"
        android:key="updates_interval"
        android:persistent="true"
        android:summary="@string/SOME_SUMMARY"
        android:title="@string/SOME_TITLE" />
</PreferenceCategory>

選択した値 (デフォルト値またはユーザー定義の値) を listPreference の概要に書き込む必要があります。たとえば、少なくとも 70 文字を入力します。

コードからこれを行うにはどうすればよいですか?

どんな助けでも大歓迎です

4

3 に答える 3

25

このようにしてみてください..

 Preference customPref = (Preference) findPreference("updates_interval");<-- your preferences key
 customPref.setSummary("desired string");
于 2012-04-13T17:29:15.423 に答える
1

ここに短い例があります:

Preference etp = (Preference) findPreference("the_pref_key");
etp.setSummary("New summary");

findPreference() はこれらのクラスのメソッドであるため、これには、PreferenceActivity または PreferenceFragment のいずれかから設定を表示する必要があります。ほとんどの場合、すでにそれを行っています。

ユーザーが実際の設定を変更するたびに概要を変更するには、OnPreferenceChangeListenerを使用して、関連するキーがコールバックで変更されたかどうかを確認します。変更後、上記のように要約を編集するだけです。

于 2012-04-13T17:31:48.257 に答える
0

新しい値にアクセスできるOnPreferenceChangedListener を設定するListPreferenceのサブクラスを作成し、ListPreference にテキストを設定できます。ListPreference のsetSummary()関数は、設定の名前の下のテキストを更新すると思います。それが機能しない場合は、 getView() をオーバーライドして、テキストを直接設定できる Preference の独自のカスタム ビューを実装することもできます。

于 2012-04-13T17:30:49.650 に答える