android检查无线电组的条件

时间:2013-04-30 14:40:55

标签: android radio-button

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

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。

多数民众赞成。对不起,如果我的例子太长了。谢谢。

2 个答案:

答案 0 :(得分:2)

关于你的第一个问题,检查是否已经检查了radiobutton非常简单:

RadioButton radioButton = (RadioButton) findViewById(buttonId);
if(radioButton.isChecked()){
    //do something
}

答案 1 :(得分:0)

  

1)如何检查是否检查了所有单选按钮。手段,用户必须在提交前回答所有问题。

我认为您的意思是RadioGroup,并且您希望每个组中至少有一个RadioButtonchecked。您可以将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

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