Событие LongClick также вызывает событие Click
Я использую onLongClick и onClick события кнопки для ввода пользовательских входов. Всякий раз, когда; пользователь долго щелкает и запускает событие 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;
}
На самом деле, мой проект - Open Source. Итак, вы можете найти весь код http://code.google.com/p/guessthenumber/
Спасибо.
Ответы
Ответ 1
Я не уверен, в каком порядке происходят эти события, но обработчик onLongClick возвращает bool, чтобы указать, было ли обработано событие. Вы должны вернуть true, если будете обрабатывать его, чтобы другие вызовы не вызывались. Я не знаю, предотвратит ли это onClick(), даже если это возможно.
Вы также можете отключить и выключить эти события, используя setClickable (boolean) и setLongClickable (boolean)
Вы можете найти эту информацию и узнать о событиях пользовательского интерфейса здесь.
Ответ 2
вот краткий обзор касательного события:
http://rxwen.blogspot.com/2010/10/android-touch-event-summary.html