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

DSl*_*r64 2 java android android-fonts android-alertdialog

这是我显示的地方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);
  }
Run Code Online (Sandbox Code Playgroud)

我想要的字体是monospace.

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

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

rpf*_*pfc 5

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

TextView messageView = (TextView) dialog.findViewById(android.R.id.message);
messageView.setTypeface(Typeface.MONOSPACE);
messageView.setGravity(Gravity.CENTER);
Run Code Online (Sandbox Code Playgroud)

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

希望对你有帮助!:)