android - 在 CheckBoxPreference 中分别点击 Text 和 Checkbox

标签 android

我正在使用 PreferenceScreen xml 创建 PreferenceActivity。我想在单击 CheckBoxPreference 的标签(标题)时打开一个新的首选项屏幕,当用户单击此 CheckBoxPreference 的复选框时,正常的首选项功能将起作用。 那我该怎么做呢?

例如:在 android 中更改用户配置文件(通过单击单选按钮)并更改其属性(通过单击此单选按钮的标签)

最佳答案

我认为使用默认首选项很难做到。但是您可以尝试扩展原始的 onBindView方法,根据文档:这是在布局中获取对自定义 View 的引用并在其上设置属性的好地方。因此,这是 CheckBoxPreference 的示例可点击文本。

public class MyCheckBoxPreference extends CheckBoxPreference {
    static final String TAG = "MyCheckBoxPreference";

    public MyCheckBoxPreference(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public MyCheckBoxPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyCheckBoxPreference(Context context) {
        super(context);
    }

    @Override
    protected void onBindView(View v) {
        super.onBindView(v);
        ((ViewGroup) v).getChildAt(1).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.i(TAG, "onClick " + getKey());
            }
        });
    }
}

关于android - 在 CheckBoxPreference 中分别点击 Text 和 Checkbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14950037/

相关文章:

android - Ellipsize 适用于提示,但不适用于文本

android - 使用 React Native 在 View 上显示 3D 动画

java - 在 Android 应用程序中格式化时间

java - 将泛型转换为其子类

android - 防止用户拍摄应用程序显示照片

android - 在 Android 中下拉

java - 为什么在两个项目中从左到右对 ImageView 进行动画处理时,我收到不同的结果?

android - 如何在Android studio 2.0中浏览android SDK源码

android - 如何找出ROM提供商是谁?

java - sqlite中的超时异常