Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿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> 

  • Administrar el diseño dentro de un radiogrupo horizontal orientado
  • Configuración de RadioButton.setChecked con varios fragmentos
  • Cómo personalizar el botón de opción de preferencia de lista
  • RadioGroup checkedButton propiedad
  • Android ListView con RadioButton en modo singleChoice y un diseño de fila personalizado
  • Cómo configurar OnClickListener en un RadioButton en Android?
  • Cómo igualar espacio hacia fuera radiobuttons en Android?
  • Android: Cambia el color de RadioButtons y las casillas de verificación programáticamente
  • 4 Solutions collect form web for “¿Cómo agregar el botón de radio dinámicamente según el número dado de cuentas?”

    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); } }); } } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.