item - Android cómo cambiar el color del botón por el texto
menu item color android (3)
Tienes que hacer esto, solo escribe debajo de setText ()
es decir
button.setText("YES");
setBackgroundResource(R.color.green);
y cuando
button.setText("NO");
setBackgroundResource(R.color.red);
Simplemente deseo cambiar el color de fondo del botón por el valor del texto. Por ejemplo, cuando cambio el texto a:
button.setText("YES");
Quiero establecer el color de fondo del botón en verde . y cuando cambio el texto a:
button.setText("NO");
Quiero establecer el color de fondo del botón en rojo .
Cuando lo cambio en el código de Java de esta manera:
boolean textValueYES = true;
button.setBackgroundColor(textValueYES ? Color.GREEN : Color.RED);
El botón pierde su configuración drawable.xml. ¿Hay alguna manera de agregar esta verificación al xml dibujable? ¿O para establecer el color de fondo por su valor de texto sin perder las configuraciones dibujables?
me gusta esto en mi archivo java
final Button btn_showtouch = (Button)findViewById(R.id.button);
btn_showtouch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if((btn_showtouch.getText()).equals("YES")) {
btn_showtouch.setBackgroundColor(Color.GREEN);
btn_showtouch.setText("NO");
}else if(btn_showtouch.getText().equals("NO")) {
btn_showtouch.setBackgroundColor(Color.CYAN);
btn_showtouch.setText("YES");
}
}
});
}
y su archivo XML como este
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="YES"
android:id="@+id/button"
android:layout_below="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="62dp" />
y funcionó para mí, espero que esto te ayude
puede crear dos xml dibujables para el color de fondo rojo y verde y establecer ese xml mediante programación.
button.setBackgroundResource(textValueYES ? R.drawable.green : R.drawable.red);