java - Android:如何在首选项上设置 OnPreferenceClickListener?
问题描述
我是 Android 编程新手,首先我想用 SharedPreferences 制作一个简单的选项菜单演示。我已经创建了基本结构,但我不知道如何将 OnPreferenceClickListener 附加到 Preference。尽管如此,我可以使用 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”
解决方案
试试这个代码希望它会帮助你
findPreference("my_preference").setOnPreferenceClickListener(preference -> {
// do something
return true;
});
推荐阅读
- mysql - 将csv文件插入mysql数据库
- python - 继承与python中的扩展
- reactjs - 如何设置我的 webpack 来配置 sass-loader?
- c# - 第二次窗口应用程序运行问题?
- java - 向 executorservice 添加更多线程只会使其变慢
- hibernate - JPA @JoinFormula 与 BindParameter
- c - 测量存储延迟时的 C 微基准测试“错误”
- python - Django 测试不起作用,但视图起作用
- .net-core - 在 Azure Devops 中发布 .net core 3.1 api 发布另一个 web 项目
- javascript - 将 HTML 转换为我有输入字段的 Word DOC