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个问题......所以,这意味着会有很多因为太多的条件,我也混淆了如何在代码中写它。希望你们明白我的意思并且可以帮助我...谢谢你......!
答案 0 :(得分: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()
答案 1 :(得分:0)
解决方案1: 在我看来,你必须在数据库上创建存储结果。
当您必须要求打印错误消息时,必须触发简单的选择查询,结果为是。
然后打印您的消息
解决方案2:
如果是,则必须创建arrayList并存储结果值。
然后你必须找到arrayList的长度并把你的条件和放置消息