【问题标题】: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);
}
});