¿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); } }); } } 
  • java.lang.NullPointerException: Intenta invocar el método de interfaz 'OnColorChangeListener.colorChanged (java.lang.String)' en una referencia de objeto nulo
  • Seleccione sólo un botón de radio de la vista de lista
  • Cómo configurar OnClickListener en un RadioButton en Android?
  • ¿Posible que todos los botones de radio no estén marcados en una aplicación para Android?
  • Seleccione sólo un botón de radio en una vista de reciclaje
  • Administrar el diseño dentro de un radiogrupo horizontal orientado
  • RadioButtons con TextView en RadioGroup
  • Android: ¿Cómo hacer que RadioGroup funcione correctamente en un ListView?
  • Android: Cambia el color de RadioButtons y las casillas de verificación programáticamente
  • Configuración de RadioButton.setChecked con varios fragmentos
  • Android ListView con RadioButton en modo singleChoice y un diseño de fila personalizado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.