关于广播组,我有两个问题。在我的应用中,有一个问题列表。每个问题都以无线电组的形式给出“是”或“否”的答案。我设计了这样的代码。
private ArrayList<String> errorMessage = new ArrayList<String>();
private ArrayAdapter<String> adapter;
boolean pergiHaji = true;
这是示例问题的代码。
//Question 1
if(rg2.getCheckedRadioButtonId() == R.id.rbtnYS2)
{
pergiHaji = pergiHaji && true;
}
else
{
pergiHaji = false;
errorMessage.add("\n 1) Anda mempunyai masalah mental");
}
//Question 2
if(rg3.getCheckedRadioButtonId() == R.id.rbtnYS3)
{
pergiHaji = pergiHaji && true;
}
else
{
pergiHaji = false;
errorMessage.add("\n 2)Anda masih belum baligh");
}
//Question 3
if(rg4.getCheckedRadioButtonId() == R.id.rbtnYS4)
{
pergiHaji = pergiHaji && true;
}
else
{
pergiHaji = false;
errorMessage.add("\n 3) Anda bukan dalam golongan orang-orang yang merdeka");
}
//Question 4
if(rg5.getCheckedRadioButtonId() == R.id.rbtnYS5)
{
pergiHaji = pergiHaji && true;
}
else
{
pergiHaji = pergiHaji && true;
}
如果问题都正确,它将显示如下。否则,它将显示所有errorMessage。
if(pergiHaji == true)
{
tv.setText("Tahniah, anda layak mengerjakan haji");
}
else
{
adapter = new ArrayAdapter<String>(SemakanActivity.this,android.R.layout.simple_list_item_1, errorMessage);
listV.setAdapter(adapter);
listV.setTextFilterEnabled(true);
adapter.notifyDataSetChanged();
}
我的问题是
1)如何检查是否已选中所有单选按钮。手段,用户必须在提交前回答所有问题。
2)如何忽略其他问题,例如,我只需回答问题1。问题2直到4与1无关。所以,无需回答。但是,如果我按下提交按钮,它将显示所有errorMessage。我不希望在4之前显示问题2的errorMessage。
多数民众赞成。对不起,如果我的例子太长了。谢谢。
答案 0 :(得分:2)
关于你的第一个问题,检查是否已经检查了radiobutton非常简单:
RadioButton radioButton = (RadioButton) findViewById(buttonId);
if(radioButton.isChecked()){
//do something
}
答案 1 :(得分:0)
1)如何检查是否检查了所有单选按钮。手段,用户必须在提交前回答所有问题。
我认为您的意思是RadioGroup
,并且您希望每个组中至少有一个RadioButton
为checked
。您可以将RadioGroup
放在ArrayList<RadioGroup>
中,然后点击提交,您可以运行for loop
以查看是否每个人都选中了按钮。例如
for (int i=0; i<rgArray.size(); i++)
{
if (rgArray.get(i).getCheckedRadioButtonId() == null)
{
// do something here like add to a different array to show error message that these aren't checked
}
}
当然,这假设您在Activity
开始
2)如何忽略其他问题,例如,我只需要回答问题1。问题2直到4与1无关。所以,无需回答。但是,如果我按下提交按钮,它将显示所有errorMessage。我不想在问题2到4之前显示errorMessage
什么?请澄清......我不确定你的意思