programacion - ¿Cómo puedo configurar de manera programática android: button=“@ null”?
manual de programacion android pdf (4)
Es necesario establecer un StateListDrawable
vacío como StateListDrawable
. Así que el equivalente de Java de android:button="@null"
es:
radioButton.setButtonDrawable(new StateListDrawable());
Estoy tratando de agregar mediante programación un conjunto de RadioButtons a un Grupo de Radio así:
for (int i = 0; i < RANGE; i++) {
RadioButton button = new RadioButton(this);
button.setId(i);
button.setText(Integer.toString(i));
button.setChecked(i == currentHours); // Select button with same index as currently selected number of hours
button.setButtonDrawable(Color.TRANSPARENT);
button.setBackgroundResource(R.drawable.selector);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
((RadioGroup)view.getParent()).check(view.getId());
currentHours = view.getId();
}
});
radioGroupChild.addView(button);
}
y necesito establecer el botón dibujable en nulo (solo quiero un texto en la parte superior de mi fondo). Hacer esto manualmente en el XML con android:button="@null"
funciona muy bien, pero no quiero codificar cada botón de opción. He intentado simplemente hacer button.setButtonDrawable(null)
pero no cambia nada.
¡Cualquier ayuda es muy apreciada!
Lo que funcionó para mí en múltiples dispositivos y API y es tan simple como se obtiene fue setButtonDrawable(android.R.color.transparent);
Usted debe hacer esto:
button.setBackgroundDrawable(null);
Si su dibujable tiene una referencia al selector, puede hacerlo transparente a través de su selector xml:
<item android:drawable="@android:color/transparent" />
como probablemente habrías encontrado la solución;)
setButtonDrawable(getResources().getDrawable(android.R.color.transparent))
debe hacer el truco.
Sólo esto funcionó para mí.