0

我有两个关于广播组的问题。在我的应用程序中,有一个问题列表。每个问题都以无线电组的形式回答“是”或“否”。我这样设计我的代码。

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;
}

如果问题全部正确,它将显示如下。否则,它将显示所有错误消息。

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。

就这样。对不起,如果我的例子太长。谢谢你。

4

2 回答 2

2

在您的第一个问题上,检查单选按钮是否已被选中非常简单:

RadioButton radioButton = (RadioButton) findViewById(buttonId);
if(radioButton.isChecked()){
    //do something
}
于 2013-04-30T15:09:18.993 回答
0

1)如何检查是否所有单选按钮都被选中。?意味着,用户必须在提交前回答所有问题。

我假设您的意思是在这里,并且您希望每个组RadioGroup中至少有一个。您可以将s 放入然后单击提交,您可以运行 a以查看是否每个都选中了一个按钮。例如RadioButtoncheckedRadioGroupArrayList<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。我不想在 4 之前显示问题 2 的 errorMessage

什么?请澄清...我不确定你的意思

于 2013-04-30T16:27:03.910 回答