2013-02-19 81 views
1

惠,我有一个问题,有点混淆解决它...我需要创建一个清单,用户在我的Android应用程序中回答..它包含几个问题...例如,我有5个问题,并在用户需要通过选择在单选按钮的选项来回答......所以基本上这个清单是检查用户是否被允许开车或不..Android应用程序使用if else声明与多个条件

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(); 

    } 

这是为了什么,我可以do..Do我需要创建的每一个可能性??? ..因为对于一个实际的一块我的想法,我有超过10个问题......所以,这意味着会有很多条件..我也混淆了如何在代码中编写它,因为条件太多..希望你们明白我的意思,并可以帮助我...谢谢你..!

回答

3

你不需要检查每一种可能性。你检查每一个答案,只有一次,并保持错误信息的跟踪,如:

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反映了用户的答案的结果,你将拥有所有的错误信息在errorMessages列表中,您可以循环并正确显示。

尽量使你的代码更通用的,可以考虑使用你的CheckedRadioButtons的数组,你可以存储错误信息使用checkBox.setTag()

+0

...它的工作... !!现在我的长码可降至short..what如果我想在列表中显示它?? ..只需声明ListView lv..then lv.setAdapter(errorMessages); – iWantToLearn 2013-02-19 07:16:42

0

解决方案各1个问题: 在我看来,你必须创建数据库的存储结果。

当您必须要求打印错误消息时,您必须触发简单的select查询并返回yes。

然后打印您的留言

解决方案2:

你如果创建ArrayList和结果保存价值肯定。

然后,你必须要找到的ArrayList的长度,并把您的病情,并把消息