Могу ли я динамически создать RadioGroup с RadioButtons внутри него (без XML)? - PullRequest
4 голосов
/ 25 марта 2012

Я хочу создать RadioGroup со списком RadioButton внутри него в функции onCreate.Я хочу сделать это как упражнение без использования xml-layout.Является ли это возможным?Благодарю.

Ответы [ 2 ]

4 голосов
/ 25 марта 2012

Примерно так:

....
RadioGroup group = new RadioGroup(this); 
group.setOrientation(RadioGroup.HORIZONTAL);
RadioButton btn1 = new RadioButton(this);
btn1.setText("BTN1");
group.addView(btn1);
RadioButton btn2 = new RadioButton(this);
group.addView(btn2);
btn2.setText("BTN2");
.... 
RadioButton btnN = new RadioButton(this);
group.addView(btnN);
btnN.setText("BTNN");
yourLayout.addView(group);
....
2 голосов
/ 29 ноября 2016

Это сделает работу:

    int buttons = 5;

    RadioGroup rgp = new RadioGroup(getApplicationContext());

    for (int i = 1; i <= buttons; i++) {
        RadioButton rbn = new RadioButton(this);
        rbn.setId(1 + 1000);
        rbn.setText("RadioButton" + i);
        //Attach button to RadioGroup.
        rgp.addView(rbn);
    }

    ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
            .findViewById(android.R.id.content)).getChildAt(0);
    viewGroup.addView(rgp);

Это полный пример:

public class MainActivity extends AppCompatActivity {

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Defining buttons quantity!
        int buttons = 5;

        //Create a new instance of RadioGroup.
        RadioGroup rgp = new RadioGroup(getApplicationContext());

        //Create buttons!
        for (int i = 1; i <= buttons; i++) {
            RadioButton rbn = new RadioButton(this);
            rbn.setId(1 + 1000);
            rbn.setText("RadioButton" + i);
            //Attach button to RadioGroup.
            rgp.addView(rbn);
        }

        //Get the root view.
        ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
                .findViewById(android.R.id.content)).getChildAt(0);
        viewGroup.addView(rgp);


    }
}

И вот результат:

enter image description here

Если вам нужно использовать радиогруппу, определенную в макете xml, и добавлять динамические кнопки, см. этот ответ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...