Dialog.setTitle не показывает заголовок

Я пытаюсь добавить пользовательский заголовок в свой диалог, однако всякий раз, когда я запускаю приложение, он не отображает заголовок.

Мой код для создания диалогового окна

final Dialog passwordDialog = new Dialog(this); passwordDialog.setContentView(R.layout.admin_password_dialog); passwordDialog.setTitle("Enter An Administrative Password"); passwordDialog.show(); 

И мой файл макета

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/btn_confirmPassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentStart="true" android:layout_below="@+id/edit_adminPassword" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:text="@string/confirmPassword"/> <EditText android:id="@+id/edit_adminPassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:ems="10" android:inputType="textPassword"/> 

И вот что я получаю

Вот что я получаю

Есть что-то, чего я не хватает?

Как и другой ответ, но более краткий

 final AlertDialog diag = new AlertDialog.Builder(this) .setTitle("Enter An Administrative Password") .setView(R.layout.admin_password_dialog) .create(); diag.show(); Button diagButton = (Button) diag.findViewById(R.id.btn_confirmPassword); diagButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // handle button click EditText input = (EditText) diag.findViewById(R.id.edit_adminPassword); String s = input.getText().toString(); } }); 

Вы должны определить свой стиль следующим образом:

  <style name="Dialog" parent="Theme.AppCompat.Dialog"> <item name="android:windowNoTitle">false</item> <item name="android:windowIsFloating">true</item> </style> 

А затем передать этот стиль конструктору диалога

 final Dialog passwordDialog = new Dialog(this,R.style.Dialog); 

Вы должны использовать AlertDialog.Builder вместо создания Dialog :

 // 1. Instantiate an AlertDialog.Builder with its constructor AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // 2. Chain together various setter methods to set the dialog characteristics builder.setView(R.layout.admin_password_dialog); builder.setTitle("Enter An Administrative Password"); // 3. Get the AlertDialog from create() AlertDialog dialog = builder.create(); dialog.show(); 

См. Здесь Руководство для разработчиков Android в диалоговом окне.

Вы также можете попробовать этот метод и получить разные стили просмотров на основе используемой темы.

 <style name="FilterDialogTheme" parent="@android:style/Theme.Holo.Light.Dialog"> <item name="android:windowNoTitle">false</item> </style> 

В диалоговом конструкторе

  public FilterDialog(Context context) { super(context, R.style.FilterDialogTheme); } 

Используйте @style/Theme.Appcompat.Light.Dialog для вашего проекта.