【问题标题】:Click on Text and Checkbox separately in CheckBoxPreference在 CheckBoxPreference 中分别点击 Text 和 Checkbox
【发布时间】:2013-02-03 16:39:57
【问题描述】:

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

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

【问题讨论】:

  • 你的意思是说更改首选项应该发生在同一个屏幕上,点击标题(标签)应该打开一个新活动??
  • 是的,点击标题打开一个新的偏好活动。我想使用诸如在 android 中设置用户配置文件之类的功能。
  • 很简单,当你点击标题创建偏好意图并启动它时,问题在哪里?您到底面临什么问题?
  • 如你所说,android默认的CheckBoxPreference是否有可能同时提供点击标题和复选框?
  • 我这样理解你的问题,会有一个标签和单选按钮,你需要点击单选按钮,这会导致设置页面,点击标题会带你进入另一个活动。现在你需要详细解释你想做什么?否则很难回答

标签: android


【解决方案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());
            }
        });
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多