Hola Ramon, he probado con las dos opciones, la primera funciona, pero como dices que estaría mejor hecho con el estado de "pressed" intento poner la segunda, y funciona a medias, digo que a medias porque para que cambie la imagen hay que pulsar dos veces, entiendo que la primera vez que se pulsa muestra la imagen con el color blanco, y ya la segunda vez que pulsas en el botón muestra la imagen que tiene el color amarillo.
Esto sucede si lo pongo dentro del onClick, si lo pongo fuera del setOnClickListener, si que se lo cambia bien, pero luego no se muestra un mensaje que tengo en el onClick
Aquí la imagen la cambia cuando se pulsa la primera vez, pero no muestra el Toast
botonNoti = rootView.findViewById(R.id.btn_Noti);
botonNoti.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
botonNoti.setPressed(true);
return true;
}
});
botonNoti.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getActivity(), "Pulsado pulsado", Toast.LENGTH_SHORT).show();
}
});
Y aquí, la primera vez que se pulsa el botón, muestra el Toast y no cambia la imagen, hay que pulsar una segunda vez para se que muestre el otro botón, y esa segunda vez ya no muestra el Toast
botonNoti = rootView.findViewById(R.id.btn_Noti);
botonNoti.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
botonNoti.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
botonNoti.setPressed(true);
return true;
}
});
Toast.makeText(getActivity(), "Pulsado Boton Notificaciones", Toast.LENGTH_SHORT).show();
}
});
Estoy probando a ver si lo consigo hacer con un botón, pero mi intención es poner tres botones para mostrar diferentes fragment, y cada vez que se pulse uno de los botones tiene que cambiar el color de ese botón a amarillo, pero a la vez volver a cambiar el otro botón a blanco.