Android 如何在Java中为所有单选按钮设置文本颜色?
我以编程方式创建了5个单选组,每个组有4个单选按钮。每个单选按钮代表一个问题的答案。当有人检查正确答案时,我想发送一条消息(效果很好),然后,如果有人按下按钮,我想将所有正确答案设置为绿色。有了这个代码,当我按下按钮时,一个单一的答案变成绿色,这是上一个广播组的正确答案。当我按下按钮时,我希望所有广播组的正确答案都变成绿色。我错在哪里? 这是我的密码:Android 如何在Java中为所有单选按钮设置文本颜色?,android,Android,我以编程方式创建了5个单选组,每个组有4个单选按钮。每个单选按钮代表一个问题的答案。当有人检查正确答案时,我想发送一条消息(效果很好),然后,如果有人按下按钮,我想将所有正确答案设置为绿色。有了这个代码,当我按下按钮时,一个单一的答案变成绿色,这是上一个广播组的正确答案。当我按下按钮时,我希望所有广播组的正确答案都变成绿色。我错在哪里? 这是我的密码: RadioGroup[] radioGroup; RadioButton[] answer; RadioButton checkedRadioB
RadioGroup[] radioGroup;
RadioButton[] answer;
RadioButton checkedRadioButton;
radioGroup = new RadioGroup[5];
answer = new RadioButton[4];
int i = 0;
for (Question qn : questions) {
radioGroup[i] = new RadioGroup(this);
int j = 0;
for (Answer an : answers) {
if (qn.getID() == an.getQuestion_id_answer()) {
answer[j] = new RadioButton(this);
radioGroup[i].addView(answer[j]);
answer[j].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkedRadioButton = ((RadioButton) v);
int CorrectAnswer = Integer.parseInt(checkedRadioButton.getTag().toString());
if (checkedRadioButton.isChecked() & CorrectAnswer == 1) {
Toast.makeText(getApplicationContext(), "Correct answer checked", Toast.LENGTH_SHORT).show();
}
}
});
j++;
}
}
linearLayout.addView(radioGroup[i]);
i++;
}
finishButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkedRadioButton.setTextColor(Color.GREEN);
for (int i = 0; i < radioGroup.length; i++) {
for (int j = 0; j < answer.length; j++) {
radioGroup[i].getChildAt(j).setEnabled(false);
}
}
}
});
RadioGroup[]RadioGroup;
无线电按钮[]应答;
无线电按钮检查无线电按钮;
放射组=新放射组[5];
答案=新的单选按钮[4];
int i=0;
(问题qn:问题){
放射组[i]=新放射组(本);
int j=0;
for(答案A:答案){
if(qn.getID()==an.getQuestion\u id\u answer()){
回答[j]=新单选按钮(本);
放射组[i].addView(答案[j]);
回答[j]。setOnClickListener(新视图。OnClickListener(){
@凌驾
公共void onClick(视图v){
选中RadioButton=((单选按钮)v);
int CorrectAnswer=Integer.parseInt(checkedRadioButton.getTag().toString());
if(checkedRadioButton.isChecked()&CorrectAnswer==1){
Toast.makeText(getApplicationContext(),“已检查正确答案”,Toast.LENGTH\u SHORT.show();
}
}
});
j++;
}
}
linearLayout.addView(放射组[i]);
i++;
}
finishButton.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
选中RadioButton.setTextColor(Color.GREEN);
对于(int i=0;i
谢谢 查看代码后的问题是,您的所有按钮都具有相同的ID,并且您只获取所选按钮的ID,而不管其是否正确。我所做的是添加了一个数组列表,其中包含正确的RAD,然后将它们设置为绿色:)
非常感谢你!最好的答案。
for (Answer an : answers) {
if (qn.getID() == an.getQuestion_id_answer()) {
answer[j] = new RadioButton(this);
answer[j].setText(an.getAnswer());
answer[j].setId(j + 100);
answer[j].setTag(String.valueOf(an.getCorrect_answer()));
if(answer[j].getTag().toString().equals("1")){
correctAnswerRadios.add(answer[j]);
}
radioGroup[i].addView(answer[j]);