0 votos

Hola.
Estoy programando una app Android en la que tengo diferentes pestañas, cada pestaña en un Fragment. Luego en cada Fragment voy haciendo llamadas y creando subpantallas.
Hay una pantalla que la creo en onCreateView del Fragment y contiene una lista y un botón. Pues ese onCreateView tiene que tiene un listener para poder saber qué elemento de la lista he pulsado pero al pulsar el botón no diferencia entre onClick y setOnItemClick, ¿Cómo puedo hacer para que en esa pantalla funcione el onClick de la lista y también el del botón y no los mezcle? Esta es mi parte del código:

displayUserCommList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> displayUserCommList, View vista_comUsuario, int pos, long rowID) {
//Obtengo la posición del canal que se selecciona
posUserComm=pos;
communitiesUserActive = true;

RelativeLayout container2 = (RelativeLayout) getActivity().findViewById(R.id.votePageContainer);

vista_comUsuario=displayGetVotesCommunity(container2);

}
});

ESTA ES LA PARTE DEL ONCREATEVIEW Y A CONTINUACIÓN EL ONBUTTONCLICK

public void onButtonClick(View view) {
int itemID = view.getId();
RelativeLayout container = null;
switch (itemID) {
case R.id.b_others:
displayChannelsList(container);

Muchas gracias a todos,

por en Android

1 Respuesta

0 votos
Mejor respuesta

Hola Sheila,

puede ocurrir que al asignar el objeto al setOnClickListener esté pasando los dos. Lo que puedes hacer para solucionar esto es crear una clase anónima directamente al botón, como por ejemplo:
 

miBoton.setOnClickListener(new OnClickListener() {
int itemID = view.getId();
RelativeLayout container = null;
switch (itemID) {
case R.id.b_others:
displayChannelsList(container);
});

 

por