【问题标题】:Change just the font size in AlertDialog仅更改 AlertDialog 中的字体大小
【发布时间】:2014-10-13 05:06:36
【问题描述】:

我知道这已经被问到甚至回答了,但我不知道如何自定义 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();
}

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

【问题讨论】:

    标签: android customization android-alertdialog font-size msgbox


    【解决方案1】:

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

     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);
    

    【讨论】:

    • 对不起,我不明白...什么是“消息”?我试图粘贴您的代码,但应用程序在 LogCat 中因 java.lang.NullPointerException 而崩溃...
    • 你得到异常的那一行是什么?
    • 在第 31 行。它是什么?
    • textView.setTextSize(40); ...也许是之前的那行...那个“消息”我无法弄清楚它是什么...
    • 完美!现在它正在工作!太感谢了!无论如何,您使用了错误的代码 AlertDialog.Builder,它是带有 setMessage 方法的代码,而不是 setView。
    猜你喜欢
    • 2011-09-27
    • 2011-11-20
    • 2013-02-28
    • 1970-01-01
    • 2019-09-29
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2013-08-13
    相关资源
    最近更新 更多