我创建了一个自定义对话框,
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());
我错过了什么吗? :/
更新:
找出错误原因。 但是仍然无法在对话框上将文本视图设置为标题。谁能指出我正确的方向?
答案 0 :(得分:1)
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-创建对话框并禁用默认的titleBar:
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");
最后,您的对话框如下所示: