長いクリックと通常のクリック用のリスナーを備えたリストビューがあります。
リストアイテムを長押しすると、通常のクリックイベントも呼び出されるのはなぜですか?
クリックごとに異なる2つの機能が必要です。
から イベントリスナー :
onLongClick() -これは、イベントを消費したかどうかを示すブール値を返します。これ以上イベントを実行しないでください。つまり、trueを返して、イベントを処理し、ここで停止する必要があることを示します。処理していない場合やイベントが他のオンクリックリスナーに続く場合はfalseを返します。
onLongClick()
からtrue
を返しても、通常のクリックイベントが発生しますか?
addに編集:ListViewの場合、OnItemLongClickListener
を使用している可能性があります。 onItemLongClick()
は、同様のブール戻り値を使用して、イベントを消費したかどうかを示します。
答えを簡単な言葉で言い換えると:
与えられた:
@Override
public boolean onLongClick(View view) {
return true; // or false
}
return true
は、イベントが消費されることを意味します。取り扱われます。他のクリックイベントは通知されません。return false
は、イベントが消費されないことを意味します。その他のクリックイベントは引き続き通知を受信します。onClick
の後にonLongClick
もトリガーされたくない場合は、return true
onLongClick
イベントから。
OnClickListener
メソッドのonClick
をオーバーライドしていることを確認してください。また、OnLongClickListener
メソッドのonLongClick
をオーバーライドしていることを確認してください。 onLongClick
を消費するため、true
メソッドがonClick
を返すことを確認してください。