Вот так:
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, вероятно, должен быть атомарным и т. Д.), Но это типичная реализацияслушатель одним касанием.Сенсорный мультитач добавляет к коммутатору еще несколько случаев, но идея остается той же.