AlertDialog。何时更改消息样式?

时间:2018-11-27 18:24:02

标签: android alertdialog

我想用等宽字体显示警报对话框的消息,所以我编写了这段代码,效果很好:

AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setMessage("message");
...
AlertDialog dialog = builder.create();
dialog.show();
TextView messageView = dialog.findViewById(android.R.id.message);
messageView.setTypeface(Typeface.MONOSPACE);

我的问题是关于调用的顺序:您需要调用dialog.show()才能调用dialog.findViewById,否则将得到一个空指针。 显示某些内容然后进行更改听起来不合逻辑。我本来希望以正确的样式构​​建它,然后显示它。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

以编程方式或以XML作为自定义TextView来准备自己的View或任何View,如下所示:

builder.setView(getLayoutInflater().inflate(R.layout.YourLayout, null))

现在YourLayout应该具有从现在开始喜欢的所有样式。否则,如果没有屏幕上的对话框视图,将很难调用findViewById