Использование OnTouchListener и OnLongClickListener мешает друг другу

У меня есть эта кнопка, которая использует onclicklistener и onlongclicklistener, а также кнопка, которая использует ontouchlistener...

суть в том, что кнопка 1 нажата в течение 0,1 секунды, кнопка 2 нажата в течение 2 секунд, кнопка 3 может быть нажата в течение 50 секунд или даже больше... но кнопка 3 видна как долгий щелчок вместо нажатия на отпускание через 5 секунд, и поэтому это не вызовет моего действия

Я использовал:

    MainActivity extends Activity implements View.OnClickListener,
        View.OnLongClickListener, View.OnTouchListener {

    button1.setOnClickListener(this);
    button2.setOnLongClickListener(this);
    button3.setOnTouchListener(this);

    public boolean onTouch(View v, MotionEvent event) {
    switch (v.getId()) {
    case R.id.button3:
         if(event.getAction() == MotionEvent.ACTION_DOWN) {
             DoTest1();
            } else if (event.getAction() == MotionEvent.ACTION_UP) {
             DoTest2();
                }
        break;
    }
    return false;
}

Когда я удаляю onlongclicklistener, он работает нормально.

Любые идеи?

Спасибо за поддержку!!!


person Marco    schedule 11.05.2012    source источник
comment
Вы можете указать, на каком языке этот вопрос...   -  person Julian H. Lam    schedule 12.05.2012
comment
Android... так что... я думаю, изобретатель приложения... JAVA...   -  person Marco    schedule 17.05.2012


Ответы (1)


Вы можете использовать View.setLongClickable(false) на кнопке 3.

person techiServices    schedule 12.05.2012
comment
true, однако возврат значения false по умолчанию при длинном щелчке позволяет продолжить работу остальных :) - person Marco; 13.05.2012