使用带有多个条件的if-else语句的android应用程序

使用带有多个条件的if-else语句的android应用程序,android,conditional-statements,rules,Android,Conditional Statements,Rules,Hye,我有一个问题,解决起来有点困惑…我需要创建一个清单供用户在我的android应用程序中回答…它包含几个问题…例如,我有5个问题,用户需要通过选择radiobutton上的选项来回答…所以基本上这个清单是检查用户是否可以驾驶汽车 1) 你受毒品影响了吗//RG1,rbyes1,rbno1 O Yes O No 2) 你有驾驶执照吗//RG2,rbyes2,rbno2 O Yes O No 3) 你有车吗//RG3,rbyes3,rbno3 O YES

Hye,我有一个问题,解决起来有点困惑…我需要创建一个清单供用户在我的android应用程序中回答…它包含几个问题…例如,我有5个问题,用户需要通过选择radiobutton上的选项来回答…所以基本上这个清单是检查用户是否可以驾驶汽车

1) 你受毒品影响了吗//RG1,rbyes1,rbno1

O Yes       O No
2) 你有驾驶执照吗//RG2,rbyes2,rbno2

O Yes       O No
3) 你有车吗//RG3,rbyes3,rbno3

O YES       O No
4) 你喝醉了吗//RG4,rbyes4,rbno4

O Yes       O No
5) 你是色盲吗//RG5,rbyes5,rbno5

O Yes       O No
用户需要回答

1)

2)

3)

4)

5)

使用户有资格驾驶汽车

如果用户回答相反的答案,系统应显示每个相反答案的原因

这是我的示例代码

 If(RG1. getCheckedRadioButtonId() == R.id.rbno1 &&
    RG2. getCheckedRadioButtonId() == R.id.rbyes2 &&
    RG3. getCheckedRadioButtonId() == R.id.rbyes3 &&
    RG4. getCheckedRadioButtonId() == R.id.rbno4 &&
    RG5. getCheckedRadioButtonId() == R.id.rbno5)
   {
      Toast.makeText(getApplicationContext(),”Congratz, you can drive”, Toast.LENGTH_LONG).show();
       }
上面的代码是用户对合格答案的回答。如果用户的回答是这样的呢

1)

2)

3)

4)

5)

所以,系统应该显示

{
 Toast.makeText(getApplicationContext(),”Sorry, you are not allow to drive because you have\n“+ 
  “2) No driving license\n” +
  “4) influenced of alcohol\n”, Toast.LENGTH_LONG).show();

  }

这是我能做什么的想法之一。我需要创造每一种可能性吗???。。因为对于实际的一个,我有超过10个问题…所以,这意味着会有很多条件。。我也不知道如何用代码来写,因为有太多的条件…希望你们能理解我的意思,并能帮助我…谢谢

您不需要检查所有可能性。您只需检查每个答案一次,并跟踪错误消息,例如:

boolean canDrive = true;
ArrayList<String> errorMessages = new ArrayList<String>();
if(RG1.getCheckedRadioButtonId() == R.id.rbno1) {
     canDrive = canDrive && true;
} else {
     canDrive = false;
     errorMessages.add("Influenced of drugs");
}

if(RG2.getCheckedRadioButtonId() == R.id.rbyes2) {
     canDrive = canDrive && true;
} else {
     canDrive = false;
     errorMessages.add("No driving license");
}

// Check the rest of your answers
布尔canDrive=true;
ArrayList errorMessages=新建ArrayList();
if(RG1.getCheckedRadioButtonId()==R.id.rbno1){
canDrive=canDrive&&true;
}否则{
canDrive=假;
错误消息。添加(“受药物影响”);
}
if(RG2.getCheckedRadioButtonId()==R.id.rbyes2){
canDrive=canDrive&&true;
}否则{
canDrive=假;
错误消息。添加(“无驾驶执照”);
}
//检查其余的答案
在您的条件结束时,变量
canDrive
将反映用户回答的结果,并且您将在
errorMessages
列表中显示所有错误消息,您可以循环并适当显示这些消息


尝试使代码更通用,考虑使用您的代码> CheckedRadioButtons < /COD>数组,并且可以使用<代码>复选框.StasgAgter()/<代码> < /P> < P> <强>解决方案1:< /强>来存储每个问题的错误信息。 在我看来,您必须创建一个数据库来存储结果

当您需要打印错误消息时,您必须在结果为“是”的简单选择查询中触发

然后打印你的信息

解决方案2:

如果是,则必须创建arrayList并存储结果值


然后,您必须找到arrayList的长度,并输入您的条件和消息

…它的工作。。。!!。。现在我的长代码可以简化为短代码..如果我想在列表中显示它呢..只需声明ListView lv..然后声明lv.setAdapter(errorMessages);