gpt4 book ai didi

android - AlertDialog.Builder.setSingleChoiceItems 导致多选列表

转载 作者:行者123 更新时间:2023-11-29 18:04:29 26 4
gpt4 key购买 nike

我使用 AlertDialog.Builder 创建了一个 AlertDialog,使用 setSingleChoiceItemsListAdapter 设置为派生自 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 传递一个 String[] 作为列表项源而不是适配器,我会得到想要的结果:

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.
}});

看来是适配器导致了问题。我仍然不确定为什么。

最佳答案

正如 K-ballo 所暗示的,问题出在自定义适配器上。它使用带有复选框的自定义布局。我用 SimpleCursorAdapter 替换了自定义适配器,它按预期工作:

mAdapter = new SimpleCursorAdapter(getActivity(),
android.R.layout.simple_list_item_single_choice,
null,
new String[] { "title" },
new int[] { android.R.id.text1 },
0);

关于android - AlertDialog.Builder.setSingleChoiceItems 导致多选列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14110109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com