2016-02-12 68 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); 
    } 
});