Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
rkcz00
0 / 0 / 0
Регистрация: 03.04.2015
Сообщений: 60
1

Перенос диалога из MainActivity в отдельный класс

01.03.2017, 21:49. Просмотров 511. Ответов 12
Метки нет (Все метки)

Всем привет, понимаю, вопрос нубский:
Насоздавал диалогов в MainActivity , все прекрасно, все работает. Естесно занимает много места, решил переместить в свой класс Dialogs
Только как теперь вызвать эти диалоги в мэйне?
Dialogs
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_layout);
 
        AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.MyDialogTheme);
        builder.setTitle(getString(R.string.dialog_title));
        builder.setMessage(getString(R.string.dialog_message));
 
        String positiveText = getString(android.R.string.ok);
        builder.setPositiveButton(positiveText,
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // positive button logic
                    }
                });
 
        String negativeText = getString(android.R.string.cancel);
        builder.setNegativeButton(negativeText,
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // negative button logic
                    }
                });
 
        AlertDialog dialog = builder.create();
        // display dialog
        dialog.show();
    }
Добавлено через 34 минуты
Вопрос и правда дико нубский ,закрыт)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2017, 21:49
Ответы с готовыми решениями:

Перенос кода из основного класса формы в отдельный класс
Суть такая. В файле класса Form1 созданном по умолчанию стало слишком много кода. Интелисенс и...

Перенос всех вывод в консоли из Main в отдельный класс Menu
Всем привет! Помогите, пожалуйста, в новый класс "Menu" добавить все выводы на консоль, убрав их из...

Перенос данных из Excel с использованием диалога выбора файла
Всем здравствуйте! Подскажите пожалуйста по коду следующее. Есть таблица Access "Заявки", данные...

Перенос раздела сайта на отдельный домен
Есть сайт1 его раздел решено вынести на отдельный домен(отдельный сайт, дизайн). Как лучше всего...

Валидность указателя на класс диалога
Проблема вот в чем: Есть всплывающая форма, которая показывается при выборе пункта меню. Мне нужно...

12
vxg
Модератор
3287 / 2082 / 329
Регистрация: 13.01.2012
Сообщений: 8,104
02.03.2017, 06:16 2
rkcz00, ну так расскажи другим нубам решение
0
shavuz
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 596
02.03.2017, 16:38 3
Создаешь класс, называешь его диалогЮтилс, в нем делаешь паблик статик функции, шоудиалог например, передаешь ему что нужно, например, текст и интерфейс. в мейн активити где надо показать диалог, пишешь, диалогЮтилс.шоудиалог(текст, интерфейс).
если нужно чтоб возвращалось значение нажатия на ок или кансел, создаешь интерфейс, в нем две функции, онОкклик и онКанселКлик, и их тоже передаешь через функцию, примерно так, диалогЮтилс.шоудиалог(Текст, нью ДиалогИнтерфейс) когда впишешь нью диалог интерфейс автоматом добавятся функции онокклик и онКанселКлик, а в классе из диалог ютилс при клике на одну из функций пишешь интерфейс.онокклик и оно вернет значение в мейн активити
1
ExFau$t
764 / 630 / 157
Регистрация: 08.05.2012
Сообщений: 3,075
02.03.2017, 18:28 4
Чтобы создать класс диалога, статик функции не нужны. Вот пример:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class AlertClass {
    Activity context;
 
    public ProgressAlert(Context context) {
        this.context = context;
    }
 
    public AlertDialog setDialog(String text) {
        AlertDialog alert;
        View view = context.getLayoutInflater().inflate(R.layout.dialog, null);
        TextView tv = (TextView) view.findViewById(R.id.textDialog);
        tv.setText(R.string.load);
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setView(view);
        alert = builder.create();
        alert.setCanceledOnTouchOutside(false);
        alert.setCancelable(false);
        alert.show();
        return alert;
    }
}
0
02.03.2017, 18:28
shavuz
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 596
02.03.2017, 18:34 5
Цитата Сообщение от ExFau$t Посмотреть сообщение
Чтобы создать класс диалога, статик функции не нужны
согласен. тоже варриант. но это при условии что каждый раз ты будешь его обнулять после показа диалога и делать нью когда будешь его открывать. иначе держишь контекст - мемори лик
0
Pablito
2836 / 2254 / 762
Регистрация: 12.05.2014
Сообщений: 7,892
Завершенные тесты: 1
02.03.2017, 18:43 6
Цитата Сообщение от ExFau$t Посмотреть сообщение
Вот пример
пример неочень, кто будет читать тему - не запоминайте такое

мне не очень приятно это говорить, но я согласен в этот раз с shavuz на 100% (его сообщение выше)
0
ExFau$t
764 / 630 / 157
Регистрация: 08.05.2012
Сообщений: 3,075
02.03.2017, 19:16 7
ТС просил код сократить, а не написать свой суперпуперский класс диалога, который уже реализован со всеми "функциями". Тот код почти эквивалентен тому, как если написать диалог в активити. Единственное, копипастил из разных мест и попало лишнее и пара опечаток.

Добавлено через 43 секунды
Ладно не важно, в любом случае ему уже не интересно.
0
rkcz00
0 / 0 / 0
Регистрация: 03.04.2015
Сообщений: 60
02.03.2017, 20:35  [ТС] 8
так решил вопрос с помощью интента и всё
Java
1
2
Intent intent = new Intent(MainActivity.this, Dialog.class);
startActivity(intent);
Для каждого диалога создал свой класс с необходимыми параметрами (их всего 3)
0
shavuz
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 596
02.03.2017, 20:38 9
ну это вообще жесть.
0
rkcz00
0 / 0 / 0
Регистрация: 03.04.2015
Сообщений: 60
02.03.2017, 20:40  [ТС] 10
Реализуем как умеем) А в чем проблема такого подхода?
0
shavuz
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 596
02.03.2017, 20:44 11
надо изначально учиться делать красивый и правильный код. во первых зачем три класса? можно все в один положить. во вторых зачем это через интент открывать?

Добавлено через 1 минуту
первый попавшийся пример из гугла https://github.com/ribot/android-boi...ogFactory.java
1
rkcz00
0 / 0 / 0
Регистрация: 03.04.2015
Сообщений: 60
02.03.2017, 20:49  [ТС] 12
Да про фабрику не подумал. Согласен, всё красиво и лаконично
0
CoolMind
02.03.2017, 23:02     Перенос диалога из MainActivity в отдельный класс
  #13

Не по теме:

Цитата Сообщение от Паблито Посмотреть сообщение
Пожалуйста, забаньте меня. Этот форум отнимает у меня слишком много времени.
Давно тут не бывал толком, как всё поменялось. Удивлён! :D

0
02.03.2017, 23:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2017, 23:02
Привет! Вот еще темы с ответами:

Перенос часть когда javascripta отдельный файл
Есть такой вот код javascript function menu1click(num) {var k=0; var wa=''; if ((num >...

Перенос данных сответствующих условиям на отдельный лист
Есть лист "Исходные данные" в файле Excel на который копируются данные. Затем строки,...

Перенос расчетной части программы в отдельный юнит
Написал код для сортировки массивов. Требуется перенести его расчетную часть в другой юнит. Как это...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru