Android AlertDialog';s未显示的项目

Android AlertDialog';s未显示的项目,android,android-alertdialog,Android,Android Alertdialog,我使用AlertDialog.Builder创建了一个AlertDialog,并使用setItems()设置了一些项目。对话框显示,但我看不到任何项目。我所看到的只是信息 final CharSequence[] items = {"Red", "Green", "Blue"}; AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity); dialogBuilder.setMessage("Pick a colo

我使用
AlertDialog.Builder
创建了一个
AlertDialog
,并使用
setItems()
设置了一些项目。对话框显示,但我看不到任何项目。我所看到的只是信息

final CharSequence[] items = {"Red", "Green", "Blue"};

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity);
dialogBuilder.setMessage("Pick a color");
dialogBuilder.setItems(items, new DialogInterface.OnClickListener() {        
    public void onClick(DialogInterface dialog, int which) {
        // Do anything you want here
    }    
});

dialogBuilder.create().show();

如果我设置了
正按钮
,我可以很好地看到该按钮。我还尝试设置
多选项项
单选项项
,但这两种设置都不起作用。

使用
设置标题
,而不是设置消息正文并覆盖项列表的
设置消息。

使用以下代码:-

final CharSequence[] items = {"Red", "Green", "Blue"};
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity);
dialogBuilder.setTitle("Pick a color");
dialogBuilder.setItems(items, new DialogInterface.OnClickListener() {

    public void onClick(DialogInterface dialog, int which) {
        // Do anything you want here
    }

});
dialogBuilder.create().show();
试试这个

final CharSequence[] items = {"Red", "Green", "Blue"};
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity);
dialogBuilder.setTitle("Pick a color");
dialogBuilder.setSingleChoiceItems(items,-1, new DialogInterface.OnClickListener()
@Override
public void onClick(DialogInterface dialog, int which) 
{
}
});
dialogBuilder.show();

为什么不选择
setTitle
而不是
setMessage
?尝试使用
setTitle(“选择颜色”)


我希望它能帮助你

请尝试
alertDialogBuilder.setCustomTitle(视图)

如果使用的是资源字符串数组,则必须包含资源打包。 context().getResources().getStringArray(R.array.items)

使用R.array.items不会显示我的列表,直到我给指针上下文和资源打包


祝你好运

如果要设置消息和项目,只需使用
setCustomTitle()
TextView
如下:

dialogBuilder.setCustomTitle(文本视图(上下文)。应用{
设置填充(
16.dpToPx().toInt(),
16.dpToPx().toInt(),
16.dpToPx().toInt(),
0
)
setText(it.message)
setTextColor(颜色为黑色)
textSize=18f
})
dialogBuilder.setItems(…)
请注意,您不能以这种方式设置标题,但您当然可以创建一个自定义标题布局,该布局支持设置消息的标题

final CharSequence[] items = {"Red", "Green", "Blue"};

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity);
dialogBuilder.setMessage("Pick a color");
dialogBuilder.setItems(items, new DialogInterface.OnClickListener() {        
    public void onClick(DialogInterface dialog, int which) {
        // Do anything you want here
    }    
});

dialogBuilder.create().show();
dpToPx()
只是一个简单的转换扩展函数,不在您的问题范围内,但为了完整起见,这里是:

@JvmOverloads
@尺寸(单位=尺寸.PX)
fun Number.dpToPx(
度量:DisplayMetrics=Resources.getSystem().DisplayMetrics
):浮动{
return toFloat()*metrics.density
}

尝试使用
setTitle
代替
setMessage
。我想建设者正是因为这个原因创建了一个普通的消息对话框。哦,是的,我没有注意到。。它很管用,谢谢!如何将此帖子标记为“已回答”
setSingleChoiceItems
setItems
基本相同:它仍然是
setMessage
的专有内容。唯一的区别是,如果您正在实施持久选择,则会显示“单选”单选按钮。在使用列表项和警报对话框时,很难发现这一点。这应该在文档中说明。谢谢,你的回答救了我一天怎么能两者兼得呢?项目和消息?@Armando,它有点隐藏,可能不是一直都在那里,但它在对话框页面的一节中说明:“因为列表出现在对话框的内容区域中,所以对话框不能同时显示消息和列表,您应该使用setTitle()为对话框设置标题。”发现这一点,但非常有用,我后来的错误出现。谢谢