我有一個動態創建的多項選擇測試。
每次按下按鈕時,都會顯示一個不同的隨機問題。另外,我將正確答案以及三個錯誤答案放入數組中,並將它們放入單選按鈕中。如何將所選單選按鈕的文本返回字符串
這種方式至今在每次單擊按鈕時都會顯示一個新的隨機問題,其中所有答案都是亂碼。
我現在想要做的是檢查選擇的答案與我放入單選按鈕的正確答案。我可以成功檢索選定的單選按鈕的ID。
現在我需要檢查存儲在字符串變量「y」中的正確答案的單選按鈕。我將如何做到這一點?
雖然我可以將單選按鈕的文本返回到一個字符串,然後匹配字符串y。我無法將該單選按鈕的文本轉換爲字符串。這是可能的還是有不同的方式我可以做到這一點?我的代碼如下:
所有的public void nextQuestion(View view){
TextView questionsTextView = (TextView)findViewById(R.id.questions);
RadioButton answerOne = (RadioButton)findViewById(R.id.answerOne);
RadioButton answerTwo = (RadioButton)findViewById(R.id.answerTwo);
RadioButton answerThree = (RadioButton)findViewById(R.id.answerThree);
RadioButton answerFour = (RadioButton)findViewById(R.id.answerFour);
Button next = (Button)findViewById(R.id.next);
int i = questions.size();
if(i == 0){
questionsTextView.setText("You have finished the Test!");
next.setText("Submit");
}
else {
//Show Radio Buttons
answerOne.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
answerTwo.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
answerThree.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
answerFour.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
//Pull Random Question
Random randomGenerator = new Random();
String randQuestion = questions.get(randomGenerator.nextInt(questions.size()));
//Get index number of randomly pulled question
int x = questions.indexOf(randQuestion);
//Remove randomly selected question from array
questions.remove(randQuestion);
//Show randomly selected question
questionsTextView.setText(randQuestion);
//Place correct answer into string "y"
String y = answers.get(x);
//Create array to hold answers
List<String> answersForQuestion = new ArrayList<>();
//Add right answer to answersForQuestion array
answersForQuestion.add(y);
//Add wrong answers to answersForQuestions array
String randWrongAnswers1 = wrongAnswers.get(randomGenerator.nextInt(wrongAnswers.size()));
answersForQuestion.add(randWrongAnswers1);
wrongAnswers.remove(randWrongAnswers1);
String randWrongAnswers2 = wrongAnswers.get(randomGenerator.nextInt(wrongAnswers.size()));
answersForQuestion.add(randWrongAnswers2);
wrongAnswers.remove(randWrongAnswers2);
String randWrongAnswers3 = wrongAnswers.get(randomGenerator.nextInt(wrongAnswers.size()));
answersForQuestion.add(randWrongAnswers3);
wrongAnswers.remove(randWrongAnswers3);
//Randomize all answers
String randomizeOrderOfAnswers1 = answersForQuestion.get(randomGenerator.nextInt(answersForQuestion.size()));
answerOne.setText(randomizeOrderOfAnswers1);
answersForQuestion.remove(randomizeOrderOfAnswers1);
String randomizeOrderOfAnswers2 = answersForQuestion.get(randomGenerator.nextInt(answersForQuestion.size()));
answerTwo.setText(randomizeOrderOfAnswers2);
answersForQuestion.remove(randomizeOrderOfAnswers2);
String randomizeOrderOfAnswers3 = answersForQuestion.get(randomGenerator.nextInt(answersForQuestion.size()));
answerThree.setText(randomizeOrderOfAnswers3);
answersForQuestion.remove(randomizeOrderOfAnswers3);
String randomizeOrderOfAnswers4 = answersForQuestion.get(randomGenerator.nextInt(answersForQuestion.size()));
answerFour.setText(randomizeOrderOfAnswers4);
answersForQuestion.remove(randomizeOrderOfAnswers4);
//Remove answer from array
answers.remove(y);
//Add users answer to array
RadioGroup g = (RadioGroup)findViewById(R.id.radioGroup);
int selected = g.getCheckedRadioButtonId();
String selectedString = Integer.toString(selected);
questionsTextView.setText(selectedString);
/*// Gets a reference to our radio group
// rBtnDigits is the name of our radio group (code not shown)
RadioGroup g = (RadioGroup) findViewById(R.id.rBtnDigits);
// Returns an integer which represents the selected radio button's ID
int selected = g.getCheckedRadioButtonId();
// Gets a reference to our "selected" radio button
RadioButton b = (RadioButton) findViewById(selected);
// Now you can get the text or whatever you want from the "selected" radio button
b.getText();*/
next.setText("Next Question");
}
radiobutton.getText()。toString() –