2011-11-16 70 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

相关问题