¿Cómo agregar el botón de radio dinámicamente según el número dado de cuentas?

He intentado este código. Exhibirá tres botones de radio en una sola fila cuando el emulador comienza. Pero necesito un evento de botón para esto. es decir; Si hago clic en el botón, debe pedir número de botones de radio. Entonces Si doy el recuento, debe mostrar los botones de radio basados ​​en el recuento dado. Por ejemplo, si doy el recuento como 3, debe mostrar los tres botones de radio en una sola fila. Tu ayuda es altamente apreciada. Gracias por adelantado.

public class MyActivity extends Activity { /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); for(int row=0; row < 1; row++) { LinearLayout ll = new LinearLayout(this); ll.setOrientation(LinearLayout.HORIZONTAL); for(int i = 1; i < 4; i++) { RadioButton rdbtn = new RadioButton(this); rdbtn.setId((row * 2) + i); rdbtn.setText("Radio " + rdbtn.getId()); ll.addView(rdbtn); } ((ViewGroup)findViewById(R.id.radiogroup)).addView(ll); } } } 

Esto es xml

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <RadioGroup android:id="@+id/radiogroup" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true"/> </RelativeLayout> 

A continuación, encontrará el código, he creado un 'EditText' y un 'botón' en el diseño xml. Introduzca un número en el 'EditText' y haga clic en el botón, el mismo no. De los botones de radio se agregarán en el Layout.

Este es tu ActivityMain

 public class ActivityMain extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final EditText editText=(EditText)findViewById(R.id.et_no); findViewById(R.id.btn).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub int number=Integer.parseInt(editText.getText().toString()); addRadioButtons(number); } }); } public void addRadioButtons(int number) { for (int row = 0; row < 1; row++) { RadioGroup ll = new RadioGroup(this); ll.setOrientation(LinearLayout.HORIZONTAL); for (int i = 1; i <= number; i++) { RadioButton rdbtn = new RadioButton(this); rdbtn.setId((row * 2) + i); rdbtn.setText("Radio " + rdbtn.getId()); ll.addView(rdbtn); } ((ViewGroup) findViewById(R.id.radiogroup)).addView(ll); } } } 

Y aquí está su archivo de diseño

 <RadioGroup android:id="@+id/radiogroup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:orientation="vertical" /> <LinearLayout android:layout_marginTop="20dp" android:layout_marginLeft="20dp" android:layout_height="wrap_content" android:layout_width="match_parent"> <EditText android:layout_height="wrap_content" android:layout_width="wrap_content" android:hint="Enter no." android:inputType="number" android:id="@+id/et_no"/> <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Add Radio btn" android:id="@+id/btn"/> </LinearLayout> 

Pruebe algo como a continuación:

 RadioGroup rgp= (RadioGroup) findViewById(R.id.radiogroup); RadioGroup.LayoutParams rprms; for(int i=0;i<3;i++){ RadioButton radioButton = new RadioButton(this); radioButton.setText("new"+i); radioButton.setId("rbtn"+i); rprms= new RadioGroup.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); rgp.addView(radioButton, rprms); } 

Esta es la manera de hacer esto:

  RadioGroup rgp = (RadioGroup) findViewById(R.id.radio_group); int buttons = 5; for (int i = 1; i <= buttons ; i++) { RadioButton rbn = new RadioButton(this); rbn.setId(i + 1000); rbn.setText("RadioButton" + i); rgp.addView(rbn); } 

Introduzca aquí la descripción de la imagen

Pero lo que si necesita hacer esto horizontalmente, sólo tiene que añadir la orientación (el valor predeterminado es vertical) con el método setOrientation() :

  RadioGroup rgp = (RadioGroup) findViewById(R.id.radio_group); rgp.setOrientation(LinearLayout.HORIZONTAL); int buttons = 5; for (int i = 1; i <= buttons; i++) { RadioButton rbn = new RadioButton(this); rbn.setId(1 + 1000); rbn.setText("RadioButton" + i); rbn.setLayoutParams(params); rgp.addView(rbn); } 

Introduzca aquí la descripción de la imagen


Este es el código completo:

En primer lugar definiendo dentro de nuestro Layout el RadioGroup:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <RadioGroup android:id="@+id/radio_group" android:layout_width="match_parent" android:layout_height="wrap_content"/> </RelativeLayout> 

El código en el MainActivity:

 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Defining 5 buttons. int buttons = 5; AppCompatRadioButton[] rb = new AppCompatRadioButton[buttons]; RadioGroup rgp = (RadioGroup) findViewById(R.id.radio_group); rgp.setOrientation(LinearLayout.HORIZONTAL); for (int i = 1; i <= buttons; i++) { RadioButton rbn = new RadioButton(this); rbn.setId(i + 1000); rbn.setText("RadioButton" + i); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1f); rbn.setLayoutParams(params); rgp.addView(rbn); } } } 

Añadir un Button y EditText en xml y tomar la entrada de editText a variable inputValue y probar esto,

  public class MyActivity extends Activity { /** * Called when the activity is first created. */ LinearLayout ll=null; ViewGroup vwgroup; Button btnClick; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); vwgroup=((ViewGroup)findViewById(R.id.radiogroup) btnClick=(Button)findViewById(R.id.button1); btnClick.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if(ll!=null) viewgroup.removeView(ll); ll = new LinearLayout(this); for(int i = 1; i < inputValue; i++) { RadioButton rdbtn = new RadioButton(this); rdbtn.setId((row * 2) + i); rdbtn.setText("Radio " + rdbtn.getId()); ll.addView(rdbtn); } vwgroup.addView(ll); } }); } } 
  • RadioGroup extendiendo RelativeLayout?
  • Cómo configurar el botón de radio marcado como predeterminado en radiogroup con Android
  • Obtener la matriz de RadioButtons en un RadioGroup en Android
  • Android - El botón de radio no muestra su texto
  • RadioGroup llama a onCheckChanged () tres veces
  • Preparación del tipo de grupo de radio personalizado
  • Cómo hacer RadioGroup botones de radio con imágenes en Android ... ¿Cómo?
  • ¿Cómo forzar a RadioGroup a seleccionar sólo un RadioButton a la vez mediante programación?
  • Seleccione sólo un botón de radio en una vista de reciclaje
  • RadioGroup con dos columnas que tienen diez RadioButtons
  • Botones de radio específicos: la forma más sencilla de configurar diferentes estilos para los botones primero / último
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.