android - 无法使用 setTitle 方法在自定义对话框上将文本视图设置为标题
问题描述
我创建了一个自定义对话框
Dialog dialog = new Dialog(loginPage.this);
然后我创建了一个文本视图以将其用作此对话框的标题:
TextView title = new TextView(this);
title.setText("Custom Centered Title");
title.setGravity(Gravity.CENTER);
但是由于某种原因,即使 Dialog 类具有 setTitle(@StringRes int titleId) 的方法,此行也会引发错误。
dialog.setTitle(title.getId());
我错过了什么吗?:/
更新:
找出错误的原因。但仍然无法将文本视图设置为对话框上的标题。谁能指出我正确的方向?
解决方案
dialog.setTitle(title.getId());
只需从您的字符串资源中获取文本并将其设置为对话框标题,您应该使用 String res id 或 String !
如果您想在对话框中使用自定义视图,请按照以下步骤操作:
1-在布局文件夹中创建对话框布局,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="200dp"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp" />
<TextView
android:id="@+id/message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp" />
</LinearLayout>
2-创建您的对话框并禁用默认标题栏:
Dialog dialog = new Dialog(MainActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
3-将您的布局ID设置为对话框并从布局中获取您的视图,然后您可以初始化它们:
dialog.setContentView(R.layout.my_dialog);
TextView title = dialog.findViewById(R.id.title);
TextView message = dialog.findViewById(R.id.message);
title.setText("Hello");
message.setText("Good luck");
最后你的对话框看起来像这样:
推荐阅读
- apache-spark - 从 spark 分发存档下载通常很慢吗?
- python - 在 django restful 框架中测试上传图像时出现 base64 编码错误
- python - 计算错误并循环继续
- discord - 想要一个检测自定义状态并赋予此人不和谐角色的代码
- c++ - 模板类型是否有等效的“typename”?
- python - 用熊猫(python)计算数据框中的标记词
- flutter - 为什么人们在将 TabController 放入 Widget build 时将其放入 initState 中可以正常工作?
- unit-testing - vue-test-utils find 没有返回,无法调用 setValue()
- django - Django - 带有值的 AutoCompleteSelectMultipleField
- vue.js - Vuetify 覆盖 v-slide-group 下一个/上一个处理程序