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()为对话框设置标题。”发现这一点,但非常有用,我后来的错误出现。谢谢