如何通过单击首选项启动 DialogFragment?

Kal*_*iMa 3 android android-preferences sharedpreferences android-dialogfragment

在我的首选项.xml 文件中,我有类似的东西

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">

    <PreferenceCategory
        android:title = "Random Title"
        android:key = "random_category">

    </PreferenceCategory>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

我有一个 PreferenceFragment:

public class PrefFragment extends PreferenceFragment  {

    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
    }

}
Run Code Online (Sandbox Code Playgroud)

我想将一个项目添加到类别中,如果您单击它,它会调用 SomeFunc()(它启动一个 DialogFragment,然后我知道如何使用我编写的帮助程序保存首选项值),但我不知道如何仅包含触发此功能的常规可点击首选项。

P.C*_*icz 5

添加点击事件

    Preference button = findPreference(preferenceKey);
    button.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
        @Override
        public boolean onPreferenceClick(Preference preference) {
            // Do some stuff here
            return true;
        }
    });
Run Code Online (Sandbox Code Playgroud)

还值得查看 Android Studio 的默认首选项页面(New -> Activity -> Settings Activity) - 它非常简洁但不太简单。