texto studio redondo radiogroup poner imagen funcion estilos darle con como botones boton android event-handling android-widget

redondo - estilos de botones android studio



Crear botones dinámicamente, ¿podría seleccionar uno y anular la selección de los otros botones? (2)

  1. La forma brutal (funciona si tienes pocos botones): guarda tus referencias de botones y crea un método privado que recorre tus botones y deselecciona una vez que no necesites
  2. Extienda su clase de botón y haga que escuche el evento personalizado que se genera cuando se hace clic en uno de los botones
  3. Mira la implementación de RadioGroup
  4. Variación de # 1. En lugar de crear oyentes por separado para sus botones, cree solo uno y reutilícelo para todos los botones. Extienda ese oyente desde OnClickListener y agregue el campo Lista. Cada vez que le asigna al oyente al botón, agregue el botón de referencia a esa lista. Ahora, cuando se activa onClick simplemente recorre la lista y desactiva los botones "otros"

Estoy creando botones dinámicamente ...

for(int i=0; i<colSize;i++){ final Button btn = new Button(this); btn.setText(SectionName[i]); btn.setTextSize(10); btn.setPadding(8, 3,8, 3); btn.setTextColor(Color.WHITE); btn.setTypeface(Typeface.SERIF, Typeface.BOLD); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //***Every time that I click my button is selected !:) btn.setSelected(true); } }); }

Pero ¿cómo podría anular la selección de los otros botones que fueron seleccionados, solo quiero un botón seleccionado! :)


Declare una variable para almacenar el Id del botón hecho clic ::

private int EnabledButton;

establecer una ID en cada botón cuando se crean ::

btn.setId(i);

o una etiqueta ::

btn.setTag(i);

luego en ese Oyente obtiene el "EnabledButton" y llama a una función para anular la selección de los otros botones ::

btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { EnabledButton=btn.getId(); DeselectButtons(); btn.setSelected(true); } });

La función para anular la selección de los otros botones ::

public void DeselectButtons() { for(int i=0; i<NumberofButtons;i++){ if (EnabledButton!= i) this.findViewById(i).setSelected(false); } }