【问题标题】:Android: How to set Text size of Button on a Dialog programatically?Android:如何以编程方式在对话框上设置按钮的文本大小?
【发布时间】:2013-08-11 23:46:47
【问题描述】:

我正在编写一个 Android 应用程序,我需要以编程方式在对话框窗口的按钮上放置更大的文本。

我看到AlertDialog.Builder 上有两个选项可以设置(正面、负面或中性)按钮:

  1. setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener)

  2. setPositiveButton(int textId, DialogInterface.OnClickListener listener)

在选项 1 中,我只能设置文本,在选项 2 中,我可以使用文本值的资源 id。 但是没有一个选项允许我添加样式按钮。

还有其他方法吗?

【问题讨论】:

    标签: android button android-alertdialog font-size


    【解决方案1】:

    当然,您总是可以在创建对话框时向用户显示自定义视图,方法是:

    AlertDialog.Builder builder = new AlertDialog.Builder(context); 
    builder.setView(yourCustomView);
    

    但是,要考虑创建自己的自定义视图,这意味着您必须扩展自己的布局,在其中创建按钮并处理正确的点击操作,就像您在常规活动中所做的那样,这就是方式如果您想修改对话框中的任何“默认”视图,就去吧...

    希望这会有所帮助...

    问候!

    【讨论】:

    • 感谢您的回答。我实际上不需要修改对话框的“默认”外观。我只是想改变字体大小。所以我不想创建自定义视图。
    【解决方案2】:

    您无需创建自定义视图。

    对话框构建器创建方法返回一个 AlertDialog 对象,让您可以访问按钮。

        AlertDialog.Builder alert = new AlertDialog.Builder(YOUR_CONTEXT);
        AlertDialog dialog = alert.create();
        // Positive
        dialog.getButton(DialogInterface.BUTTON_POSITIVE).setTextSize(THE_SIZE);
        // Negative
        dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setTextSize(THE_SIZE);
    

    【讨论】:

    • 感谢您的回答。这很好用。不过,AlertDialog.getButton() 给出了 null 的一件事(对于将要使用此解决方案的任何人)。此链接 [stackoverflow.com/questions/4604025/… 提供了如何避免这种情况的更多信息。
    猜你喜欢
    • 2015-01-09
    • 2011-12-24
    • 1970-01-01
    • 2013-04-01
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多