【问题标题】:Get AlertDialog title by findViewById通过 findViewById 获取 AlertDialog 标题
【发布时间】:2013-02-10 19:57:02
【问题描述】:

我尝试通过使用此功能更改 AlertDialog 字体

private void saveDialog(){

    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
        builder.setTitle(res.getString(R.string.dialog_title))
               .setMessage(res.getString(R.string.dialog_saveconfirm)) 
               .setCancelable(false)
               .setNegativeButton(res.getString(R.string.dialog_cancel), new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                 }
               })
               .setPositiveButton(res.getString(R.string.dialog_ok), new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    //do some thing
            });
        AlertDialog alert = builder.create();
        alert.show();

        TextView tit = (TextView) alert.findViewById(android.R.id.title);
        TextView msg = (TextView) alert.findViewById(android.R.id.message);
        Button btn2 = alert.getButton(DialogInterface.BUTTON_NEGATIVE);
        Button btn1 = alert.getButton(DialogInterface.BUTTON_POSITIVE);
        tit.setTypeface(UtiliShare.getTf());
        msg.setTypeface(UtiliShare.getTf());
        btn1.setTypeface(UtiliShare.getTf());
        btn2.setTypeface(UtiliShare.getTf());

}

当我在 Activity 中调用函数时,我在设置字体时为 tit 设置了 02-25 17:59:04.759: E/AndroidRuntime(1014): java.lang.NullPointerException,但是当我删除 tit 对话框时效果很好。

我认为TextView tit = (TextView) alert.findViewById(android.R.id.title); 中的错误是返回 null。

我该如何解决这个问题??


更新 此链接包含我的问题的答案Answer

感谢Sam

【问题讨论】:

标签: android android-alertdialog


【解决方案1】:

为了以您想要的方式更改文本视图,我建议您使用自定义的对话框布局。来看看

http://developer.android.com/guide/topics/ui/dialogs.html#CustomLayout

【讨论】:

  • 见 Sam 评论。谢谢。
【解决方案2】:

如果你使用android.support.v7.app.AlertDialog,你必须使用android.support.v7.appcompat.R.id.alertTitle,否则使用android.R.id.title

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 2015-05-23
    • 2016-12-07
    • 2012-07-14
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    相关资源
    最近更新 更多