onTouchEvent en el diálogo

He implementado botones onLongClickListener en Android Dialog que disminuye automáticamente el número mediante temporizadores. Aqui esta el codigo

myIncreaseTimer = new Timer();
final Runnable runnable_decrease = new Runnable() {
    public void run() {
        int txt = Integer.parseInt(length.getText().toString());
        txt -= 1;
        length.setText(String.valueOf(txt));
        if (txt == 0) {
            myIncreaseTimer.cancel();
            myIncreaseTimer.purge();
            myIncreaseTimer = new Timer();
        }
    }
};
btnMinus.setOnLongClickListener(new View.OnLongClickListener() {
    public boolean onLongClick(View v) {
        myIncreaseTimer.schedule(new TimerTask() {
            @Override
            public void run() {
                runOnUiThread(runnable_decrease);
            }
        }, 0, 300);
        return true;
    }
});

Cuando estoy dentro de la actividad, no del diálogo, puedo detener la disminución a través de onTouchEvent cuando un usuario toca la pantalla

@Override 
public boolean onTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_UP) {
        myIncreaseTimer.cancel();
        myIncreaseTimer.purge();
        myIncreaseTimer = new Timer();
    }
    return true;
}

Sin embargo, no puedo hacer esto en el diálogo. Aún más, el diálogo no tiene onTouchEvent.

¿Alguien sabe cómo puedo implementar onTouchEvent in Dialog ¿O dónde debo detener el temporizador de aumento en el Dialog?

preguntado el 08 de noviembre de 11 a las 10:11

2 Respuestas

No puedes manejar onTouch on Dialog, así que

Cree una actividad, implemente onTouchListener en ella y en el archivo de manifiesto

<activity android:theme="@android:style/Theme.Dialog">

Entonces, ahora su actividad parece un DialogBox,

respondido 08 nov., 11:14

Pero asegúrate de extender Activity, no AppcompctActivity y una más piensa lo que quiero agregar aquí. Si configuramos syle android: style / Theme.Dialog. Se mostrará el título de la actividad. Si desea eliminarlo, use android: style / Theme.Holo.Dialog.NoActionBar - Lalit kumar

porque Dialog no está diseñado para manejar eventos onTouch sin procesar. considere crear una actividad que se vea como un diálogo (tema transparente, sin barra de título) y anule su método onTouchEvent.

respondido 08 nov., 11:14

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.