汇总显示 EditTextPreference 当前值

jap*_*kin 2 android summary edittextpreference android-sharedpreferences

我希望能够在摘要字段中显示 EditTextPreference 的值。具体来说,我想在 PreferenceFragmentCompat 中执行此操作。

import android.support.v7.preference.PreferenceFragmentCompat;

public class SettingsFragment extends PreferenceFragmentCompat {

    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        addPreferencesFromResource(R.xml.preferences);
    }
}
Run Code Online (Sandbox Code Playgroud)

首选项文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <EditTextPreference
        android:defaultValue="DEVICE01"
        android:key="device_id"
        android:title="Device ID" />
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

我见过其他解决方案,但没有一个包括如何在 PreferenceFragmentCompat 中执行此操作。

Sim*_*mon 5

由于这个问题仍然在谷歌上出现,现在有一个更直接的方法来解决这个问题(使用 androidx)。

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

    <EditTextPreference
        android:key="prefFoobar"
        android:title="@string/preference_foobar"
        android:persistent="true"
        app:useSimpleSummaryProvider="true" />
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

“app:useSimpleSummaryProvider”完成了所有的魔法。