Задать вопрос
arteqrt
@arteqrt
Почти не начинающий програмист

AlertDialog устарел?

Хочу создать простое диалоговое окно. Решил сделать это с помощью alertDialog. Создал метод в классе адаптера элементов recyclerView, установил картинку, заголовок, основное сообщение. Но вот беда, цвет основного текста не меняется с белого, как бы я не пробовал. Я создавал отдельный стиль, пытался покрасить его с помощью HTML в коде - увы, ничего не помогло, текст остался прежним.

Так вот, стоит ли создавать кастомный диалог или же я не правильно что то делаю. Лично я в документации не нашел ничего связано с устранением, но авось.

Класс диалога
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;

import androidx.fragment.app.DialogFragment;

public class DeleteDialog extends DialogFragment {

    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder adb = new AlertDialog.Builder(getActivity(), R.style.df)
                .setIcon(R.drawable.icon_basket)
                .setTitle("Title!").setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setNegativeButton("cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setMessage("R.string.message_text");
        return adb.create();
    }


Как я к нему обращаюсь
public void createDialog() {
            deleteDialog = new DeleteDialog();
            deleteDialog.show(fragmentManager, "q");
        }


Файл стилей
<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
        <item name="android:windowFullscreen">true</item>
        <item name="colorPrimary">@color/colorC</item>
        <item name="colorPrimaryDark">@color/colorD</item>
        <item name="colorAccent">@color/colorC</item>
        <item name="android:listDivider">@color/colorGrayDivider</item>
        <item name="android:textColor">@color/colorGray</item>
        <item name="android:popupBackground">@color/colorWhite</item>
        <item name="fontFamily">@font/giger</item>
    </style>

    <style name="splashScreen" parent="Theme.AppCompat.NoActionBar">
        <item name="android:windowBackground">@drawable/splash</item>
    </style>

    <style name="df" parent="ThemeOverlay.AppCompat.Dialog.Alert">
        <item name="android:textColor">@color/colorGray</item>
    </style>

</resources>


Цвет с белого не меняется по прежнему.

РЕШЕНИЕ!
Просто убрать строку
<item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
  • Вопрос задан
  • 167 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Да, устарел, и давно. Используй DialogFrament.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы