2016-02-12 62 views
0

我有一个CheckBox,我需要响应OnCheckedChangeListener的OnLongClickListener 而不是。我怎么做?即使我实现了OnLongClickListener,CheckBox仍然会在用户点击时切换。我想切换到longClick只发生在CheckBox替换setOnCheckedChangeListener与setOnLongClickListener

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

回答

0

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

不知道他们会工作。我没有测试过。

也许你可以禁用点击布局文件。只启用长按。

<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); 
    } 
});