LongClick事件也触发Click事件

我使用onLongClick和onClick事件的button来获取用户input。 每当; 用户长按并触发onLongClick事件,onClick事件也被触发。 我找不到我的问题。 两种方法的代码如下所示:

@Override public void onClick(View v) { switch(((Button) v).getId()) { case R.id.enter: EntertheNumber(); break; case R.id.clear: CleartheNumber(); break; case R.id.number_zero: case R.id.number_one: case R.id.number_two: case R.id.number_three: case R.id.number_four: case R.id.number_five: case R.id.number_six: case R.id.number_seven: case R.id.number_eight: case R.id.number_nine: AddtotheNumber(mEditor, (Button) v); break; } @Override public boolean onLongClick(View view) { if(SMBGuesstheNumber.bDisplayFlagList) { theActiveButton = (Button) view; showDialog(R.id.display_flaglist); } return false; } 

其实我的项目是开源的。 所以,你可以在http://code.google.com/p/guessthenumber/find所有的代码

谢谢。

Solutions Collecting From Web of "LongClick事件也触发Click事件"

我不确定这些事件发生的顺序,但onLongClick处理程序返回一个布尔值来指示事件是否被处理。 如果您处理它,则应返回true,以免其他单击事件不会被调用。 我不知道这是否会阻止onClick()从发射。

你也可以closures这些事件,并使用setClickable(boolean)和setLongClickable(boolean)

你可以在这里find这个信息和更多关于UI事件的信息 。

这里是关于触摸事件的简要总结: http : //rxwen.blogspot.com/2010/10/android-touch-event-summary.html