Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Krugera
23 / 23 / 1
Регистрация: 14.11.2011
Сообщений: 114
#1

Изменение стилей для элементов showDialog - Android

17.03.2016, 00:05. Просмотров 221. Ответов 7
Метки нет (Все метки)

Здравствуйте. Как изменить стили элементов showDialog? Есть элементы диалога, в виде кнопок(скрин приложу ниже). Как изменить цвет кнопки или цвет букв? Что не прописываю, все применяется только к заголовку.

Может виновата тема?


Стили:

XML
1
2
3
4
5
6
7
<style name="CustomAlertDialog" parent="android:style/Theme.Dialog">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:width">300dip</item>
        <item name="android:textColor">#000000</item>
    </style>
Код создания диалога :

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case 1:
                final String[] mCatsName = {"Кнопка1", "Кнопка2", "Кнопка3"};
                AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.CustomAlertDialog);
                builder.setTitle("Сообщение!");
                builder.setItems(mCatsName, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int item) {
                        // TODO Auto-generated method stub
 
                    }
                });
                builder.setCancelable(true);
                return builder.create();
            default:
                return null;
        }
 
    }

Как изменить стиль кнопок?
Миниатюры
Изменение стилей для элементов showDialog  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2016, 00:05     Изменение стилей для элементов showDialog
Посмотрите здесь:

Android Как в программе использовать все стили из файла стилей?
Android Таймер и изменение элементов интерфейса
изменение пути для кеша Android
Устаревший метод showDialog() в DatePickerDialog Android
Android Хранение HTML, файлов, картинок, стилей в ресурсах приложения
Генератор стилей Android приложений Android
Android Изменение положения элементов на экране
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OlegJV
102 / 102 / 29
Регистрация: 13.03.2016
Сообщений: 471
17.03.2016, 00:19     Изменение стилей для элементов showDialog #2
Сейчас в Берлине модно разливать чай через ситечко. А также использовать DialogFragment. А в нем рисовать свой layout и извращаться над ним любыми способами. Но если очень сильно хочется, то можно и в обычном диалоге написать что-то вроде:

Java
1
2
3
4
5
6
7
8
9
protected Dialog onCreateDialog(int id) {
 
//..........
 
dialog.setContentView(R.layout.dialog);
 
    Button btn = (Button) dialog.findViewById(R.id.dialogBtn);
    btn.setText("Текст");
        // И так далее...
Паблито
2014 / 1756 / 546
Регистрация: 12.05.2014
Сообщений: 6,226
Завершенные тесты: 1
17.03.2016, 17:40     Изменение стилей для элементов showDialog #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
вот класс, стиль я взял из поста выше
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class MyDialog extends AlertDialog.Builder {
 
    final String[] mCatsName = {"Кнопка1", "Кнопка2", "Кнопка3"};
 
    public MyDialog(Context context) {
        super(context, R.style.CustomAlertDialog);
        setTitle("Сообщение!");
        setItems(mCatsName, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int item) {
                // bla bla
            }
        });
    }
}
switch-case сам потом добавишь по вкусу
диалог создается просто
Java
1
new MyDialog(context).show();
кнопки получаются прозрачные
Krugera
23 / 23 / 1
Регистрация: 14.11.2011
Сообщений: 114
17.03.2016, 18:56  [ТС]     Изменение стилей для элементов showDialog #4
Паблито, Все так же написал,но кнопки не изменились. Все так же кроме вызова, context оно подчеркнуло и в место него я попробовал использовать MainActivity.this Как сделать, чтоб все работало как надо?

OlegJV, Посмотрел применение DialogFragment и буду пробовать использовать. Я просто и не представляю, как сделать так же как у меня на скрине. Буду пытаться делать.
Паблито
2014 / 1756 / 546
Регистрация: 12.05.2014
Сообщений: 6,226
Завершенные тесты: 1
17.03.2016, 19:00     Изменение стилей для элементов showDialog #5
если вызов идет из активити то надо писать просто this
Цитата Сообщение от Krugera Посмотреть сообщение
Как сделать, чтоб все работало как надо?
включить голову
Паблито
2014 / 1756 / 546
Регистрация: 12.05.2014
Сообщений: 6,226
Завершенные тесты: 1
17.03.2016, 19:07     Изменение стилей для элементов showDialog #6
в импортах должно быть
Java
1
import android.support.v7.app.AlertDialog;
ахтунг!!! не
Java
1
import android.app.AlertDialog;
а именно v7
Изменение стилей для элементов showDialog
Krugera
23 / 23 / 1
Регистрация: 14.11.2011
Сообщений: 114
17.03.2016, 19:08  [ТС]     Изменение стилей для элементов showDialog #7
Цитата Сообщение от Паблито Посмотреть сообщение
включить голову
Т.е. ошибка при вызове метода? неправильный параметр передаю?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2016, 19:24     Изменение стилей для элементов showDialog
Еще ссылки по теме:

Кнопка без стилей на новой активности Android
Свои идентификаторы для элементов ListView Android
Изменение layout-элементов одного activity из другого activity Android
Android Прозрачный showDialog
Android Запретить изменение положения title при добавлении элементов в ActionBar

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Паблито
2014 / 1756 / 546
Регистрация: 12.05.2014
Сообщений: 6,226
Завершенные тесты: 1
17.03.2016, 19:24     Изменение стилей для элементов showDialog #8
что бы поменять цвет надписей на кнопках, которые задаются через setItems, надо в стиль добавить
XML
1
<item name="textColorAlertDialogListItem">цвет</item>
Yandex
Объявления
17.03.2016, 19:24     Изменение стилей для элементов showDialog
Ответ Создать тему
Опции темы

Текущее время: 12:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru