当前位置: 首页 > 知识库问答 >
问题:

如何在Unity Android插件库中访问AlertDialog的消息和标题?(我在AlertDialog中使用自定义字体)

唐麒
2023-03-14

我想在使用AlertDialog时使用android插件库中的自定义字体。下面是使用自定义字体显示警报对话框的代码。

AlertDialog alertDialog = new AlertDialog.Builder(mainActivity).setTitle("Title").setMessage("Message Text").create();
alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Cancel", dialogOnClickListener);

TextView alertMessageTextView = (TextView) alertDialog.findViewById(R.id.message); // I am getting error here
TextView alertTitleTextView = (TextView) alertDialog.findViewById(android.R.id.title); // I am getting error here

Typeface customFont = Typeface.createFromAsset(mainActivity.getResources().getAssets(), "fonts/lobster-regular.ttf");

alertMessageTextView.setTypeface(customFont);
alertTitleTextView.setTypeface(customFont);

alertDialog.show();

我收到错误:

错误Unity AndroidJavaException:java.lang.NoSuchFieldError: Lcom/cptech/pluginexample/R$id类中没有类型I的静态字段消息;或其超类('com.cptech.pluginexample.R$id'的声明出现在base.apk)

我已将字体文件放在Unity的“资产/资源”文件夹中。因此,在最终apk中,字体资源显示在“资产/字体”文件夹中。但是,这并不重要,因为我可以在其他文本视图中使用自定义字体。

唯一的问题是,我相信它找不到AlertDialog的消息和标题。任何帮助都将不胜感激。

共有1个答案

宁兴修
2023-03-14

更改很少:

构建警报对话框时,请使用show()而不是create():

AlertDialog alertDialog = new AlertDialog.Builder(mainActivity).setTitle("Title").setMessage("Message Text").show();

然后,更换此行:

TextView messageTextView = (TextView) alertDialog.findViewById(R.id.message);

android. R.id.message代替,如下所示:

TextView messageTextView = (TextView) alertDialog.findViewById(android.R.id.message);

并确保您不会意外地在文件顶部执行导入com.android.R。您需要进行此更改,因为id消息不是模块中的资产,而是android库中的默认资产。因此您现在使用的R来自您的包-您需要从android指定R。R

最后一件事很快,当您设置文本时,请注意文本视图的变量名称,应更改为messageTextView

 类似资料:
  • 我创建了ListView,当我单击列表项时,它将打开带有NegativeButton的AlertDialog消息。这些都做得很好。现在,我想将自定义字体设置为listview项和AlertDialog的标题、消息和NegativeButton的字体。甚至我也尝试了自定义字体库,但没有得到预期的输出。这里附上我的试用代码如下。谁能告诉我出了什么问题吗? xml文件

  • 下面是我的FragmentActivity和DialogFragment。我尝试创建一个自定义AlertDialog。我已经部分实现了如下图所示。如何消除自定义AlertDialog周围的白色区域? 下面是我的alertdialog布局xml fragment_dialog.xml

  • 我正在尝试自定义AlertDialog按钮的强调色。但它并没有产生任何影响,它似乎是从系统中继承了颜色。这是我的风格/主题。 这是我试图构建警报对话框的代码。 编辑1: 我尝试了使用的方法,但它给出了相同的结果。 编辑2: 我还尝试更改对话框的重音颜色,但没有看到该颜色: 即使这样也不会改变按钮文本的颜色:(。

  • 问题内容: 有人可以建议一种方法来更改动态创建的AlertDialog中的字体(标题和正文)吗?我尝试了很多方法,但是没有一个起作用。代码是: 问题答案: 您应该设置布局的自定义视图,而不是设置alertdialog的文本。在执行此操作之前,请修改视图的字体。 并设置警报对话框的视图,请致电, 尽管据我所知,这不会更改您的标题。 更新 我看到您无法理解我的意思,所以这是一个完整的示例 这使用的是我

  • 我尝试开发一个小android应用程序,并显示一个对话框警报,其中只包含一个edittext,以填充自定义内容作为下一个链接 创建自定义布局我有这个代码,但它不工作 } 但是代码循环运行 我不明白 在我班上的主要活动 我有这个密码 这是我的风格。xml 我的logcat是下一个 谢谢你的帮助,

  • 问题内容: 我有一个问题,如何向AllertDialog显示此数组item_detail? } 这是我的代码: } 问题答案: 我还有一个问题,如何使图片显示在内容区域而不是图标中。你能再帮我吗?所以这是您的完整代码: XML:(alert_background.xml) Java代码: