|
||
|
|
|
|||||||
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Boton dentro de un ListView
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. Código:
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();"
pero no doy con ello.
__________________
|
|
|
|
#2
|
||||
|
||||
|
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
__________________
|
|
#3
|
||||
|
||||
|
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 |
| Gracias de parte de: | ||
![]() |
Estás aquí
|
||||||
|
||||||