1

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

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

4

1 回答 1

1

我认为很难使用默认偏好。但是您可以尝试扩展原始onBindView方法,根据文档:This is a good place to grab references to custom Views in the layout and set properties on them.所以,这是一个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());
            }
        });
    }
}
于 2016-06-05T14:39:18.570 回答