首页 > 解决方案 > Android:PreferenceCategory 的 OnClickListener

问题描述

是否有可能在 a 中有一个OnClickListenerfor PreferenceCategorya PreferenceFragment

我试过这样的事情:

XML

<PreferenceCategory android:title="Nothing to see here folks"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:focusable="true"
    android:key="prefCatKey">

        <SwitchPreference
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:key="randomKey"
            android:title="Don't do anything" />

</PreferenceCategory>

爪哇

PreferenceCategory prefCat = (PreferenceCategory)getPreferenceScreen().findPreference("RTXOffsetCategory");
prefCat.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener()
{
    @Override
    public boolean onPreferenceClick(Preference preference)
    {
        Log.d("Tag", "Do stuff here");
        return false;
    }
});

该变量prefCat返回一个正确的值,但OnPreferenceClickListener()从未调用过。

甚至可以PreferenceCategory打电话给听众吗?

如果有可能,你是怎么做到的?

标签: androidonclicklistenerandroid-preferences

解决方案


看起来PreferenceCategory在 API 级别 29 中已弃用。相反,建议使用 AndroidX首选项库

您也许可以使用Preference.onPreferenceClickListener来实现相同的行为。


推荐阅读