1

我知道这已经被问到甚至回答了,但我不知道如何自定义 AlertDialog。

我编写了以下代码,并得到以下结果作为 AlertDialog,这就是我想要的,除了字体大小:这是我唯一想要改变的东西。

@Override
public void onClick(View v) {               
    final AlertDialog msgbox  = new AlertDialog.Builder(About.this).setTitle("Credits").setMessage(msg).create();
    msgbox.setCancelable(true);
    msgbox.show();
}

在此处输入图像描述

在这里阅读其他一些答案,我编写了以下代码并获得以下对话框:

@Override
public void onClick(View v) {       
    final TextView myView = new TextView(getApplicationContext());
    myView.setText(msg);
    myView.setTextSize(14);
    final AlertDialog msgbox  = new AlertDialog.Builder(About.this).setTitle("Credits").setView(myView).create();           
    msgbox.setCancelable(true);
    msgbox.show();
}

在此处输入图像描述

如您所见,它改变了一切!如何仅更改字体大小或如何使视图看起来像以前的 AlertDialog?

4

1 回答 1

2

如果您只想更改 AlertDailog 的文本大小,可以通过 Dialog 的 id(已定义 - android.R.id.message)访问 Dialog 上的本机 TextView 资源并更改大小。但非常重要的是,您必须在调用后进行更改show(),以便TextView绘制并准备好本机。这样做,在创建您Dialog的之后Dialog.Builder

 final AlertDialog msgbox  = new AlertDialog.Builder(About.this).setTitle("Credits").setView(myView).create();           
msgbox.setCancelable(true);
msgbox.show();
TextView textView = (TextView) msgbox.findViewById(android.R.id.message);
textView.setTextSize(40);
于 2014-08-19T23:46:36.940 回答