Как создать AppCompatDialog из AlertDialog.Builder или эквивалентного?

До этого я использовал DialogBuilder для создания AlertDialog как это

 AlertDialog.Builder builder = new AlertDialog.Builder(context); ... ... AlertDialog dialog = builder.create(); 

Как я могу создать новый AppCompatDialog из диалогового построителя или есть еще один новый эквивалентный способ?

    Просто нашел решение. Я должен импортировать

     import android.support.v7.app.AlertDialog; 

    И тогда будет работать AppCompatDialog dialog = builder.create() .

    Если вы хотите использовать AlertDialog , просто импортируйте новый supprt v 22.1 и используйте такой код (обратите внимание на импорт):

     import android.support.v7.app.AlertDialog AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.AppCompatAlertDialogStyle); builder.setTitle("Dialog"); builder.setMessage("Lorem ipsum dolor ...."); builder.setPositiveButton("OK", null); builder.setNegativeButton("Cancel", null); builder.show(); 

    Если

    android.support.v7.app.AppCompatDialog – это прямой родительский класс android.support.v7.app.AlertDialog , где вы можете использовать android.support.v7.app.AlertDialog , вы можете использовать android.support.v7.app.AppCompatDialog ,

    Я только что переместил все мои android.app.AlertDialog в android.support.v7.app.AlertDialog .

    После некоторого тестирования с помощью эмуляторов 4.X я обнаружил, что для простого диалога достаточно просто изменить импорт. Но для диалоговых окон с несколькими вариантами выбора дополнительно необходимо выполнить AppCompatDialog alert = builder.create(); Для получения диалоговых окон стиля Material Design (на 4.X).

    Чтобы быть ясным, если у вас есть простой диалог, похожий на этот:

     import android.support.v7.app.AlertDialog; AlertDialog.Builder builder = new AlertDialog.Builder(ctx); builder.setIcon(resId) .setTitle(title) .setMessage(msg) .setCancelable(isCalncelable) .setPositiveButton(btn1, listener1); AlertDialog alert = builder.create(); alert.show(); 

    Изменение импорта будет достаточно 🙂

    Но для диалога с несколькими вариантами выбора вам нужно использовать AppCompatDialog следующим образом:

     import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatDialog; AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("Choose something") .setPositiveButton(...) .setMultiChoiceItems(mStringArray, mSelectedArray, SomeFragment.this); AppCompatDialog alert = builder.create(); alert.show(); 

    Затем вы получите красивый дизайн Material Design на устройствах 4.X.

    Теперь забавная часть!

    Для диалога с несколькими вариантами выбора на устройстве 5.X собственная версия ( android.app.AlertDialog ) показывает флажки слева , правильно следуя спецификации Material Design . Но если вы используете диалоговые окна поддержки, то флажки появятся справа . WTF!

    В долгосрочной перспективе, поскольку Android 5+ получает долю на рынке, вы захотите переключиться на собственные диалоги.