我想用等宽字体显示警报对话框的消息,所以我编写了这段代码,效果很好:
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
,否则将得到一个空指针。
显示某些内容然后进行更改听起来不合逻辑。我本来希望以正确的样式构建它,然后显示它。
有没有办法做到这一点?
答案 0 :(得分:0)
以编程方式或以XML作为自定义TextView
来准备自己的View
或任何View
,如下所示:
builder.setView(getLayoutInflater().inflate(R.layout.YourLayout, null))
现在YourLayout
应该具有从现在开始喜欢的所有样式。否则,如果没有屏幕上的对话框视图,将很难调用findViewById
!