#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();