在 Android 应用设置中显示当前值

Show Current Value in Android App Settings

我正在尝试为我的应用制作一个设置页面。它在一起,但不显示当前设置(见图)。

就目前而言,我的 XML 文件是

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

<PreferenceCategory android:title="Pager Tone">

 <ListPreference
     android:entries="@array/pagerName"
     android:entryValues="@array/pagerFile"
     android:key="pagerSound"
     android:title="Select Pager Tone"
     android:defaultValue="pager"/>
<PreferenceCategory android:title="@string/partner_message">

    <SwitchPreferenceCompat
        android:key="partner"
        android:title="@string/send_to_partner"
        android:summary="@string/partner_summary"/>

    <EditTextPreference
        android:dependency="partner"
        android:defaultValue="@string/shout"
        android:inputType="text"
        android:key="partner_textmessage"
        android:maxLines="1"
        android:selectAllOnFocus="true"
        android:singleLine="true"
        android:title="@string/partner_textmessage" />

    <EditTextPreference
        android:dependency="partner"
        android:inputType="phone"
        android:key="partner_phone"
        android:maxLines="1"
        android:selectAllOnFocus="true"
        android:singleLine="true"
        android:title="@string/partner_phone_no"
        android:summary="Starting +44"/>

</PreferenceCategory>
片段 java 文件是
import android.os.Bundle;
import androidx.preference.PreferenceFragmentCompat;

public class SettingsFragment extends PreferenceFragmentCompat{

    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        setPreferencesFromResource(R.xml.settings_pref, rootKey);
    }
}

我在某处读到可以用 android:summary 完成,但我不知道如何提取值以放入摘要中。也不知道如何让它们立即更新。非常感谢任何帮助。

好吧,通过在 Google 中尝试许多不同的搜索词,我终于找到了答案,而且它非常简单。只需添加 app:useSimpleSummaryProvider="true"。所以 XML 变成

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<PreferenceCategory android:title="Pager Tone">

 <ListPreference
     android:entries="@array/pagerName"
     android:entryValues="@array/pagerFile"
     android:key="pagerSound"
     android:title="Select Pager Tone"
     android:defaultValue="pager"
     app:useSimpleSummaryProvider="true"/>