【问题标题】:CheckBox replace setOnCheckedChangeListener with setOnLongClickListenerCheckBox 将 setOnCheckedChangeListener 替换为 setOnLongClickListener
【发布时间】:2016-02-13 19:58:31
【问题描述】:

我有一个 CheckBox,我需要响应 OnLongClickListener 而不是 OnCheckedChangeListener。我怎么做?现在,即使我实现了 OnLongClickListener,当用户单击它时,CheckBox 仍然会切换。我希望切换仅在 longClick 上发生,如

checkBox.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            checkBox.setChecked(!checkBox.isChecked());
            ...
            return true;
        }
    });

【问题讨论】:

    标签: android android-layout checkbox onlongclicklistener


    【解决方案1】:

    我建议两件事......

    不确定它们是否会起作用。我没有测试。

    也许您可以禁用对布局文件的点击。仅启用长按。

      <CheckBox
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clickable="false"
            android:longClickable="true"
            ..... />
    

    或者,您可以覆盖 onCheckedChangeListener 以不执行任何操作。

    checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            checkBox.setChecked(!isChecked);
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 2015-01-14
      • 2016-02-28
      • 2020-12-30
      相关资源
      最近更新 更多