Я хочу, чтобы сообщение alerttdialog отображалось моноширинным шрифтом, поэтому я написал этот код, который отлично работает:
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, иначе вы получите нулевой указатель.
Показывать что-то, а потом менять - не логично. Я бы предпочел построить его в правильном стиле, а затем показать.
Есть ли способ сделать это так?
Подготовьте свой собственный TextView или любой View Программно или в XML в качестве пользовательского View, покажите это как:
builder.setView(getLayoutInflater().inflate(R.layout.YourLayout, null))
Теперь YourLayout должен иметь все стили, которые вам нравятся. Иначе будет сложно вызвать findViewById без диалогового окна на экране !!
Это здорово и Удачного кодирования!