Сгенерированные кодом радиокнопки проверяют выбор - PullRequest
0 голосов
/ 03 мая 2018

У меня есть код, который генерирует в активности несколько радиокнопок:

public void drawRAnswers(int pst){
    int drawables = qmclist.get(pst).getAnswers().size();
    RadioGroup l1 = new RadioGroup(this);
    l1.setOrientation(LinearLayout.VERTICAL);
    for (int i=0;i<drawables;i++){
        RadioButton rd = new RadioButton(this);
        rd.setId(i);
        rd.setText(current.getAnswers().get(i).getAns());
        l1.addView(rd);
    }
    parentLinearLayout.addView(l1, parentLinearLayout.getChildCount());
}

Что я хочу сделать, так это иметь возможность проверять, какие из них (радиокнопки) проверяются при нажатии кнопки:

public void onAddAnswer(View v){
    position++;
    delete();
    drawRAnswers(position);
}

Пока что эта кнопка только загружает следующий набор радиокнопок в представлении и удаляет текущие, но я не проверяю, какие из них выбраны. Вы знаете, как я мог сделать это в этом onAddAnswer методе? Я хотел бы поместить текст каждой выбранной радиокнопки в список.

Спасибо.

1 Ответ

0 голосов
/ 03 мая 2018

Мне удалось выяснить это самому. Вот что я сделал:

public class Activity extends AppCompatActivity {
    RadioGroup currentGroup;
    ...
    public void onAddAnswer(View v){

    if (currentGroup.getCheckedRadioButtonId()==-1){
        Toast.makeText(getApplicationContext(), "Veuillez sélectionner au moins une réponse",
                Toast.LENGTH_LONG).show();
    } else {
        int selectedId = currentGroup.getCheckedRadioButtonId();
        RadioButton selectedRadio = (RadioButton)findViewById(selectedId);
        Toast.makeText(getApplicationContext(), selectedRadio.getText().toString()+" is selected",
                Toast.LENGTH_SHORT).show();
        position++;
        delete();
        updateData(position);
    }
}
    ...
    public void drawRAnswers(int pst){
    int drawables = qmclist.get(pst).getAnswers().size();
    RadioGroup l1 = new RadioGroup(this);
    currentGroup = l1;
    l1.setOrientation(LinearLayout.VERTICAL);
    for (int i=0;i<drawables;i++){
        RadioButton rd = new RadioButton(this);
        rd.setId(i);
        rd.setText(current.getAnswers().get(i).getAns());
        l1.addView(rd);
    }
    parentLinearLayout.addView(l1, parentLinearLayout.getChildCount());
}
}

Так что, в основном, я делаю, чтобы каждый раз, когда я рисовал радиокнопки, у меня была RadioGroup, сопоставлялась с currentGroup и проверяла, есть ли у меня (или нет) какие-либо радиокнопки. Если да, то я выясняю, какой из них.

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