Разделитель AlertDialog не отображается на Android 4.4 Kitkat

#android #android-layout #android-alertdialog #android-theme #android-styles

#Android #android-макет #android-alertdialog #android-тема #android-стили

Вопрос:

У меня есть диалоговое окно оповещения с четырьмя элементами (массив строк), я хочу добавить разделитель между каждым элементом и первым разделителем другого цвета, я видел это на Android 4.4 kitkat следующим образом

введите описание изображения здесь

вот мой код диалогового окна оповещения

 AlertDialog.Builder dialog = new AlertDialog.Builder(this);
            dialog.setTitle(getString(R.string.choose_layout));

            String[] recyclerViewLayouts = getResources().getStringArray(R.array.RecyclerViewLayouts);
            SharedPreferences.Editor editor = sharedPreferences.edit();

            dialog.setItems(recyclerViewLayouts, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int index) {


                    }
                }
            });
            dialog.create();
            dialog.show();
  

Я попытался создать его с помощью следующего кода, но также не отображается

 AlertDialog alertDialog = builder.create();

ListView listView = alertDialog.getListView();

listView.setDivider(new ColorDrawable(Color.GRAY));

listView.setDividerHeight(1);

alertDialog.show();
  

Ответ №1:

[Решено]

после многих часов поиска я обнаружил, что проблема заключается в том, что я использовал AlertDialog библиотеки androidx androidx.appcompat.app.AlertDialog , которая еще не поддерживается, для автоматического добавления разделителей, и я должен был использовать android.app.AlertDialog.Builder после того, как я изменил его, разделитель снова отображается

Код после обновления

 android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(this);

            builder.setTitle(getString(R.string.choose_layout));

            String[] recyclerViewLayouts = getResources().getStringArray(R.array.RecyclerViewLayouts);
            SharedPreferences.Editor editor = sharedPreferences.edit();


            builder.setItems(recyclerViewLayouts, (dialog, index) -> {

                }
            });

            android.app.AlertDialog alertDialog = builder.create();
            alertDialog.show();