在 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"/>
我正在尝试为我的应用制作一个设置页面。它在一起,但不显示当前设置(见图)。
就目前而言,我的 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"/>