Android:如何在偏好设置上设置OnPreferenceClickListener?

时间:2019-06-19 11:03:23

标签: java android sharedpreferences onclicklistener

我是Android编程的新手,首先,我想使用SharedPreferences做一个简单的选项菜单演示。我已经创建了基本结构,但是我不知道如何将OnPreferenceClickListener附加到首选项。尽管如此,我可以使用onSharedPreferenceChanged方法,但是没有其他事件侦听器。 (再次,我是一个初学者,所以我不知道为什么会这样。)

我已阅读有关创建菜单步骤的文档:https://developer.android.com/guide/topics/ui/settings/customize-your-settings#java

我还在这里看到了一个问题:Preference Activity on Preference Click Listener

我已经尝试了一些解决方案,但是它们根本没有用。 (我无法实现OnPreferenceClickListener,所以这可能是主要原因,但我不知道为什么)

如您所见,我在PreferenceCategory中创建了CheckBoxPreference和Preference elem。 (位于/res/xml/settings_pref.xml中)

<PreferenceCategory
    android:key="category_basic"
    android:title="Basic settings">
    <CheckBoxPreference
        android:defaultValue="true"
        android:key="my_checkbox"
        android:summaryOff="Off"
        android:summaryOn="On"
        android:title="@string/my_checkbox"
    />
    <Preference
        android:key="my_preference"
        android:title="@string/my_preference"
    />
</PreferenceCategory>

此方法检查CheckBoxPreference的状态(已选中/未选中) (位于/java/MainActivity.java中)

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { // called when I change the state of the CheckBoxPreference
    if (key.equals("my_checkbox")) {
        // some interesting stuff
    }
}

但是我的目的是检测用户是否单击了首选项并执行了某些操作(例如,打开对话框)

onClickPreference.setOnPreferenceClickListener(preference -> {
    // do something
    return true;
});

当我尝试创建点击侦听器时,出现以下错误消息:无法解析符号“ onClickPreference”

1 个答案:

答案 0 :(得分:1)

尝试此代码,希望对您有帮助

findPreference("my_preference").setOnPreferenceClickListener(preference -> {
    // do something
    return true;
});