2013-02-19 113 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的長度,並把您的病情,並把消息