如何让我的 AlertDialog 以等宽字体显示其文本?

How do I make my AlertDialog display its text in monospace font?

这是我显示 AlertDialog:

的地方
  public void showCenteredInfoDialog(TextView _title, TextView _message)  {
    _title.setGravity(Gravity.CENTER);
    this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setPositiveButton("OK", null);
    builder.setCustomTitle(_title);
    builder.setMessage(_message.getText());
    AlertDialog dialog= builder.show();

    TextView messageView = (TextView) dialog.findViewById(android.R.id.message);
    messageView.setGravity(Gravity.CENTER);
  }

我希望字体为 monospace

我需要修改一个 xml 文件还是 Java 可以单独处理这个?(如果 Java 可以处理它,它可能需要 API 21,是吗?)

我想知道添加 messageView.setFontFeatureSettings("...");messageView.setTypeface(...) 以某种方式引用 monospace 是否可行。我找不到 setFontFeatureSettings.

的字符串参数的语法

这应该可以解决您的问题。在TextView部分添加:

TextView messageView = (TextView) dialog.findViewById(android.R.id.message);
messageView.setTypeface(Typeface.MONOSPACE);
messageView.setGravity(Gravity.CENTER);

也可以在XML中更改字体,但我认为这样更舒服。

希望对您有所帮助! :)

下面是@rpfc 为我制作的内容(不需要 API 21):

TextView _title 和 _message 以 MONOSPACE 字体显示 AlertDialog 的方法:

public void showCenteredInfoDialog(TextView _title, TextView _message)  {

  _title.setGravity(Gravity.CENTER);

  this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

  AlertDialog.Builder builder = new AlertDialog.Builder(this)
                                               .setPositiveButton("OK", null)
                                               .setCustomTitle(_title)
                                               .setMessage(_message.getText());

  AlertDialog                        dialog= builder.show();
  TextView  messageView = (TextView) dialog.findViewById(android.R.id.message);
            messageView.setTypeface(Typeface.MONOSPACE);
            messageView.setGravity(Gravity.CENTER);
}