我创建了一个AlertDialog
使用AlertDialog.Builder
来setSingleChoiceItems
将其设置为ListAdapter
派生自的自定义类CursorAdapter
:
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Title")
.setSingleChoiceItems(mAdapter, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which)
{
// Do nothing.
}})
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
Log.d(TAG, "Ok clicked.");
}})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
Log.d(TAG, "Cancel clicked.");
}});
尽管使用setSingleChoiceItems()
,我的结果对话框包含一个带有复选框的列表,并且可以检查多个项目。我希望看到一个带有单选按钮的列表。
如何让对话框只允许选择一个项目,并使用单选按钮显示该选择?
更新
如果我调用setSingleChoiceItems
传递 aString[]
作为列表项源而不是适配器,我会得到所需的结果:
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Title")
.setSingleChoiceItems(new String[] {"one","two","three"}, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which)
{
// Do nothing.
}});
所以看起来适配器会导致问题。我仍然不确定为什么。