2011-11-16 72 views
0

這不僅僅是一個真正的問題,更是一個用戶體驗問題,但如果我能解決這個問題,它會很好。AlertDialog中的單選按鈕在觸摸時不會改變

我創建一個單一選擇AlertDialog類似圖像...

enter image description here

我用它來創建它的代碼是...

private void createGuideViewChooserDialog() { 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle("Select Guide View"); 
    builder.setSingleChoiceItems(guideViewChooserDialogItems, currentGuideView, this); 
    guideViewChooserDialog = builder.create(); 
    guideViewChooserDialog.show(); 
} 

...等等基本上我使用int調用currentGuideView來設置哪個單選按鈕顯示爲選中,我的Activity執行DialogInterface.OnClickListener,因此在調用中使用thissetSingleChoiceItems(...)

onClick(...)聽衆根據所選物品做一些簡單的事情,然後調用guideViewChooserDialog.cancel()

我遇到的問題是當我觸摸其中一個列表項目時,該項目被簡要地突出顯示以確認觸摸,但AlertDialog消失而未顯示所選無線電按鈕的改變。

一切工作正常,我的onClick(...)聽衆得到哪些項目被觸摸,但它只是有點令人不安,對話消失沒有看到單選按鈕選擇的變化。

我在HTC Desire w/Android v2.2上測試這個。這是計劃中的行爲還是在v2.2中的一個錯誤或HTC的實施?有什麼我可以(或應該)這樣做,在對話框消失之前,所選項目的無線電按鈕被正確顯示爲選定的?

+0

請您粘貼完整的代碼。當我們必須猜測這些變量涉及什麼時,很難弄清楚...... – LuxuryMode

+0

您需要猜測哪些變量? 'guideViewChooserDialogItems'是文本的CharSequence []',正如我在問題中提到的,'currentGuideView'是一個'int'(0-2之間),用於設置當AlertDialog爲第一個時要選擇哪個單選按鈕所示。重點在於它的作用,但當我觸摸一個項目時,AlertDialog不會自動切換單選按鈕。我需要知道是否必須自己手動切換(無法找到執行此操作的方法),或者AlertDialog應該自動執行。 – Squonk

回答

0

該對話框正在變暗,因爲這是您必須在DialogInterface.CnClickListener中設置的對話框。如果您不想讓它變暗,請爲用戶添加一個按鈕以單擊「確定」,確認其無線電選擇,然後關閉對話框。

+0

這不是我想要做到的,但這是我能夠最清楚地解決問題的方法。我添加了「確定/取消」按鈕,從UX角度來看,它現在表現更好。謝謝。 – Squonk

相關問題