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

时间:2016-11-26 23:08:59

标签: android sharedpreferences android-preferences android-dialogfragment

在我的preferences.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>

我有一个PreferenceFragment:

public class PrefFragment extends PreferenceFragment  {

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

}

我想在类别中添加一个项目,如果你单击它,它会调用SomeFunc()(它启动一个DialogFragment,从那里我知道如何使用我写的帮助器保存偏好值),但我不知道我知道如何只包含触发此功能的常规可点击偏好。

1 个答案:

答案 0 :(得分:3)

添加点击事件

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

同样值得查看Android Studio的默认首选项页面(新功能 - &gt;活动 - &gt;设置活动) - 它非常简洁但不太简单。