我使用AlertDialog
创建AlertDialog.Builder
,并使用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();
如果我设置PositiveButton
,我可以看到该按钮就好了。我还尝试设置MultiChoiceItems
和SingleChoiceItems
,但这些都不起作用。
答案 0 :(得分:142)
使用setTitle
代替设置邮件正文的setMessage
并覆盖项目列表。
答案 1 :(得分:2)
为什么不选择setTitle
代替setMessage
?试试setTitle("Pick a color")
。
我希望它会对你有所帮助。
答案 2 :(得分:1)
尝试alertDialogBuilder.setCustomTitle(view)
答案 3 :(得分:1)
如果要设置消息 AND 项目,只需将setCustomTitle()
与TextView
一起使用,如下所示:
dialogBuilder.setCustomTitle(TextView(context).apply {
setPadding(
16.dpToPx().toInt(),
16.dpToPx().toInt(),
16.dpToPx().toInt(),
0
)
setText(it.message)
setTextColor(Color.BLACK)
textSize = 18f
})
dialogBuilder.setItems(...)
请注意,您不能以这种方式设置标题,但是您当然可以创建自定义标题布局,该布局支持同时设置标题和消息。
dpToPx()
只是一个简单的转换扩展功能,不在您的问题范围内,但这是出于完整性考虑:
@JvmOverloads
@Dimension(unit = Dimension.PX)
fun Number.dpToPx(
metrics: DisplayMetrics = Resources.getSystem().displayMetrics
): Float {
return toFloat() * metrics.density
}
答案 4 :(得分:0)
使用以下代码: -
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();
答案 5 :(得分:0)
试试这个
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();
答案 6 :(得分:0)
如果您使用的是资源字符串数组,则必须包含资源包。 。上下文()getResources()getStringArray(R.array.items);
我的列表没有通过使用R.array.items显示,直到我给指针上下文和资源打包。
祝你好运!