que tienen una vista con una onTouch
que puede distinguir entre la entrada táctil y clics izquierda/centro/derecha del ratón, como en¿Cómo puede mi vista responder a una rueda del mouse?
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getButtonState() == MotionEvent.BUTTON_PRIMARY) // API 14 required
...
...
}
También me gustaría este punto de vista para responder a la rueda del ratón. onTouch
no es el camino, ni he encontrado ningún otro controlador de eventos para responder a la rueda del mouse. ¿Tal vez la vista puede pretender ser desplazable y hacer lo suyo con los métodos de desplazamiento? En este punto, me he dado por vencido y estoy usando la entrada de teclado (1 a 9, más 0) para seleccionar los elementos que prefiero seleccionar con la rueda del mouse.
Así que una sugerencia firme o un poco de código sería apreciado.
No se preocupe, una interfaz de usuario de Android que requiera un teclado y un mouse se infligirá al público; la aplicación es una herramienta de desarrollo.
EDIT: la respuesta correcta se da a continuación, pero sólo por lo que esta cuestión es más útil para los futuros lectores, esto es (ligeramente editado) el código real que estoy usando como resultado:
@Override
public boolean onGenericMotionEvent(MotionEvent event) {
if (0 != (event.getSource() & InputDevice.SOURCE_CLASS_POINTER)) {
switch (event.getAction()) {
case MotionEvent.ACTION_SCROLL:
if (event.getAxisValue(MotionEvent.AXIS_VSCROLL) < 0.0f)
selectNext()
else
selectPrev();
return true;
}
}
return super.onGenericMotionEvent(event);
}
¿Quizás obtenga un evento clave, como pageup o algo así? GoogleTV tiene esos teclados, pero todos puedo encontrar conversaciones sobre d-pad, no la rueda de desplazamiento. –
@jeffamaphone, 'Toast.makeText (this," ke: "+ KeyEvent.keyCodeToString (keyCode), Toast.LENGTH_SHORT) .show()' produce un buen resultado en el 'onKeyDown' de la actividad. Está en silencio cuando manipulo la rueda del mouse. –
Bueno, vale la pena intentarlo. –