Android – Detectar Fin de Prensa Larga
Estoy trabajando en la aplicación en la que un usuario necesita presionar y mantener pulsado un botón durante mucho tiempo.
¿Cómo puedo detectar el momento en que el usuario: termina la prensa o mueve su posición táctil?
- Cómo setOnTouchListener () en un ListPreference?
- Android: usando MotionEvent para arrastrar y soltar el posicionamiento de vistas en un grupo de vistas personalizado
- Disparar Evento táctil desde la vista DialogFragment a la vista de actividad principal
- cómo deslizar un evento button onTouch en android
- Android: Recyclerview horizontal dentro de una Recyclerview vertical
Gracias
- View.onTouchEvent sólo registra el evento ACTION_DOWN
- onTouchEvent () of Activity se dispara 3 veces?
- no puede pasar por referencia para una variable booleana en android
- Eliminación del fragmento haciendo clic / tocando fuera:
- ¿Cómo hacer algo repetidamente mientras se presiona un botón?
- En EditText, aparece un diálogo al hacer clic en un subconjunto específico de texto
- Cómo detectar un solo toque, así como multi-toque en onTouchEvent ()
- Multitouch para Android obteniendo punteros erróneos y / o valores XY
Creo que lo mejor es usar una combinación de onLongClickListener () y onTouchListener () para ese botón. Tendrás que coger ciertos eventos en el oyente táctil, ya que se activará para cada evento táctil.
Intente algo como lo siguiente:
class Blah extends Activity { private Button mSpeak; private boolean isSpeakButtonLongPressed = false; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.blahlayout); Button mSpeak = (Button)findViewById(R.id.speakbutton); mSpeak.setOnLongClickListener(speakHoldListener); mSpeak.setOnTouchListener(speakTouchListener); } private View.OnLongClickListener speakHoldListener = new View.OnLongClickListener() { @Override public boolean onLongClick(View pView) { // Do something when your hold starts here. isSpeakButtonLongPressed = true; return true; } } private View.OnTouchListener speakTouchListener = new View.OnTouchListener() { @Override public boolean onTouch(View pView, MotionEvent pEvent) { pView.onTouchEvent(pEvent); // We're only interested in when the button is released. if (pEvent.getAction() == MotionEvent.ACTION_UP) { // We're only interested in anything if our speak button is currently pressed. if (isSpeakButtonLongPressed) { // Do something when the button is released. isSpeakButtonLongPressed = false; } } return false; } } }
Creo que puedes usar OnTouchListener para esto.
Creo que el onFocusChanged -Listener se puede utilizar para esto.