PDA

Ver la Versión Completa : [ CONSULTA ] Boton dentro de un ListView


kaiser75
26/05/15, 20:00:29
Tengo un ListView con un adapter personalizado con dos textos y un boton, el problema que tengo es que por ejemplo al pulsar el boton 1 del listview me reproduce un sonido y al mismo tiempo el boton se cambia y muestra una animacion que al terminar el sonido se para (con setOnCompletionListener) y vuelve a cambiar el fondo del boton al estado inicial, al pulsar el boton 2 u otro cualquiera de la lista el sonido se para, hasta ahi bien, pero la animacion sigue funcionando y no se para.

Dentro del getView tengo el boton.
Button btn = (Button) rowView.findViewById(R.id.boton);

En el onClick del boton lo primero paro cualquier sonido que se este reproduciendo y arranca el nuevo sonido.

public void onClick(View view)...etc
if (mp != null) {
mp.stop();
mp.release();
mp = null;

// he probado aqui de meter el "animacion.stop()" y funciona y se para la animacion
// pero no me restablece el fondo por defecto.
animacion.stop();
btn.setBackgroundResource(R.drawable.boton_play);
}

- seguido el mediaplayer con el onCompletionListener y la animacion "animacion.start();"
creo que me salto algo con el tema del boton dentro del getView...:rolleyes: pero no doy con ello.

kaiser75
05/06/15, 10:33:57
A parte que no consigo cambiar el fondo del boton pulsado al pulsar otro de nuevo, tampoco consigo detectar el elemento del listview en el menu contextual ( registerForContextMenu(boton); ), he probado con los setTag y getTag etc...pero nada :rolleyes:

mystgun01
15/06/15, 14:38:48
Yo quiero intentar ayudar, pero no me hagas mucho caso porque soy principiante y no tengo mucha idea así que no se si funcionaria así.
Mi idea seria que en vez de hacer click, hagas que el botón mientras este pressed, funcione el sonido y cambie el fondo, y cuando lo suelta se para y vuelve al estado original, osea que una vez que se pulse ponerle setpressed(true), y cuando acabe la animación lo cambias a false.
Seguro que es una tontería lo que acabo de decir pero a ver si se anima mas gente con mas idea jeje