Слушатель кнопки Android - PullRequest
0 голосов
/ 27 марта 2012

Я пытаюсь реализовать кнопку прослушивания, которая устанавливает значение true, когда кнопка удерживается и установите его в ложь, когда это реализовано

Но как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 28 марта 2012

Работает ли это для вас:

public class ButtonDownListener implements OnTouchListener{

    boolean pressed = false;

    public boolean onTouch(View v, MotionEvent event){
        if(event == MotionEvent.ACTION_DOWN){
            pressed = true;
        }
        else if(event == MotionEvent.ACTION_UP){
            pressed = false;
        }

        return true;
    }
}

зарегистрирован на кнопку:

button.setOnTouchListener(new ButtonDownListener());
1 голос
/ 28 марта 2012

Вот так:

public void foo() {
  Button mButton = (Button) findViewById(R.id.mButton)

  mButton.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
      switch(event.getAction() & MotionEvent.ACTION_MASK) {
        case MotionEvent.ACTION_DOWN:
          mBoolean = true;
          return true;
        case MotionEvent.ACTION_UP:
          mBoolean = false;
          return true;
        default:
          return false;
      }
    }
  });
}

Конечно, есть некоторые проблемы с многопоточными операциями с приведенным выше кодом (например, рассматриваемый bool, вероятно, должен быть атомарным и т. Д.), Но это типичная реализацияслушатель одним касанием.Сенсорный мультитач добавляет к коммутатору еще несколько случаев, но идея остается той же.

...