在我的應用程序中,我有一個存儲在ArrayList中的問題列表,我想顯示一個顯示一個問題的對話框,然後在問題得到解答後繼續下一個問題。我現在正在做這件事的方式(遍歷一個循環)一直沒有奏效,因爲它只是將所有的對話框一次層疊在一起,這會導致一系列其他問題。我正在尋找的是一種仍然遍歷問題的方法,但每次只更改對話框的佈局,直到完成列表中的每個問題。任何人都可以給我一個很好的指導,讓我知道如何做到這一點?通過單個對話框一次顯示一個對象數組...而不是幾個對話框
1
A
回答
1
您可以製作一個將標題和信息作爲參數並顯示對話框的功能。
showDialog(String title, String message){ // Show dialog code here}
在該對話框的接聽按鈕的監聽器調用另一個函數(showQuestion(currentQuestion)),遍歷該ArrayList中,直到它結束
int currentQuestion=0;
ArrayList<QuestionObject> questionList;
showQuestion(int i){
if(i<questionList.size()){
showDialog(questionList.get(i).getTitle,questionList.get(i).getMessage);
currentQuestion++;
}else{
//quiz is over
}
}
+0
我正在努力尋找類似的東西。這正是我需要的,謝謝! – RyanInBinary
0
如果你要使用的正面,中性和負面鈕釦;那麼你可能會遇到多個對話的問題。嘗試使用自己的TextView,ListViews和Button定義自定義佈局。你可以像普通佈局一樣實現監聽器和其他一切。然後通過AlertDialog.Builder.setView()
將您的自定義佈局傳遞給對話框。
PS如果您包含您目前正在做的事情的代碼示例,我們可以提供不太模糊的答案。
1
我假設你的意思是你只是想改變1個單一的佈局(在XML中創建,例如main.xml)。爲了做到這一點,請確保您正在處理的課程指向該佈局。從那裏(假設使用事件偵聽器,你對當用戶提交一個答案),你可以改變你,只要你想通過以下:
TextView txt = (TextView) findViewById(R.id.textView); // references the txt XML element
,並在事件偵聽器,如果答案是正確的,那麼變化(有無我是一個全局變量,最初設置爲0)。
if(i<arrayList.size()){
txt.setText(arrayList.get(++i));
}else{
txt.setText("You Finished");
}
從那裏,在else語句中,您可以更改arrayLists並將i重置爲0;
相關問題
- 1. 在對話框中一次顯示一個對象
- 2. Android從對話框中顯示另一個對話框
- 3. 顯示對話框另一個對話框後:掛起
- 4. Android在另一個對話框頂部顯示對話框
- 5. 顯示自定義對話框而不是「ANR對話框」
- 6. SDI-顯示一個對話框
- 7. 在python中顯示一個對話框
- 8. 顯示一個對話框活動
- 9. 顯示一個對話框,說明
- 10. jquery對話框 - 頁面上的多個對話框,一次只打開一個對話框
- 11. 樣式對話框按鈕只有一個jQuery對話框的幾個頁面
- 12. ListView打開一個對話框(或提示對話框)
- 13. 作出Contract.Assert拋出一個例外,而不是顯示一個對話框
- 14. Android對話框顯示2個活動而不是1個
- 15. 優勢,使用一個窗口,而不是一個對話框
- 16. MFC一個父對話框,多個子對話框
- 17. jQuery Mobile多個對話框在一個對話框中
- 18. 刪除歷史文件而不顯示一個對話框
- 19. 第一次用戶登錄時,顯示一個對話框
- 20. 僅在Android中一次顯示一個進度對話框?
- 21. 如何一次只顯示一個對話框?
- 22. 如何只顯示對話框一次
- 23. jQuery ui對話框只顯示一次
- 24. jQuery對話框只顯示一次
- 25. jQuery對話框只顯示第一次
- 26. 只顯示一次對話框
- 27. 文件對話框不會出現一個jQuery-UI-對話框
- 28. 一次關閉多個對話框
- 29. 對話框顯示兩次
- 30. 藍線一個對話框
爲什麼要使用對話框?您可以創建一個視圖並更改其內容。 – David
我使用對話框,因爲當前視圖與正在回答的問題相關,並且在問題部分完成後執行其他操作。 – RyanInBinary