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

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

Войти
Регистрация
Восстановить пароль
 
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
#1

Отслеживание закрытия диалога - Программирование Android

23.11.2013, 19:21. Просмотров 800. Ответов 4
Метки нет (Все метки)

Здравствуйте!
Имеется вот такой класс:
Кликните здесь для просмотра всего текста
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package com.contedevel.timetable;
 
import java.util.ArrayList;
import java.util.List;
 
import com.contedevel.timetable.db.DatabaseHandler;
import com.contedevel.timetable.db.TimetableItem;
import com.contedevel.timetable.helpers.SettingsHelper;
import com.contedevel.timetable.helpers.SimplePagerAdapter;
import com.contedevel.timetable.helpers.WeekAdapter;
import com.contedevel.timetable.helpers.WeekHelper;
 
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.TextView;
 
public class WeekTimetableCreator {
    
    private Context context;
    private int week;
    private List<View> pages;
    private DatabaseHandler db;
    private List<TimetableItem> items;//Array with lessons
    private String[] days;
    private ListView lvTabContent; 
    private TextView tvEmpty;
    private ViewPager vp;
    private SettingsHelper sh;
    private WeekHelper wh;
    
    private int tab_content;
    
    public WeekTimetableCreator(Context context, int week) {
        this.context = context;
        this.week = week;
        //Get settings
        sh = new SettingsHelper(context);
        //Initialization of helper
        wh = new WeekHelper(context);
        //Set theme
        if(sh.getTheme().equalsIgnoreCase("dark")) {
            tab_content = R.layout.d_tab_content;
        }
        else {
            tab_content = R.layout.tab_content;
        }
        //Start builder
        builder();
    }
    
    public View getView() {
        return vp;
    }
    
    public Context getContext() {
        return context;
    }
 
    private void builder() {
        // TODO Auto-generated method stub
        //Initialization of LayoutInflater
        LayoutInflater inflater = LayoutInflater.from(context);
        //Array and View for ViewPager
        pages = new ArrayList<View>();
        View view;
        //Get db
        db  = new DatabaseHandler(context);
        //Get days
        days = sh.getDays();
        //Creator
        for(int i = 0; i < days.length; i++) {
            //Log.e("WeekCreator", days[i]);
            
            view = inflater.inflate(tab_content, null);
            //Set title
            TextView tvTitle = (TextView) view.findViewById(R.id.tvTitleDay);
            tvTitle.setText(days[i].substring(3));
            //Initialization of components
            lvTabContent = (ListView) view.findViewById(R.id.lvTabContent);
            tvEmpty = (TextView) view.findViewById(R.id.tvTEmpty);
            view = creator(view, db, i);
            //Add view in array
            pages.add(view);
        }
        //Add pages into ViewPager
        SimplePagerAdapter spAdapter = new SimplePagerAdapter(pages);
        vp = new ViewPager(context);
        vp.setAdapter(spAdapter);
        vp.setCurrentItem(0);
    }
    //Creator's body
    private View creator(View view, DatabaseHandler db, int i) {
        //Get items
        items = db.findItemsByDayAndWeek(wh.getNumber(days[i].substring(3)), week);
        if(items.size() == 0) {
            lvTabContent.setVisibility(ListView.GONE);
        }
        else {
            tvEmpty.setVisibility(TextView.GONE);
            //Adapter for tab content
            WeekAdapter wAdapter = new WeekAdapter(context, items);
            lvTabContent.setAdapter(wAdapter);
            //Option menu on ListView click
            lvTabContent.setOnItemClickListener(new OnItemClickListener() {
 
                @Override
                public void onItemClick(AdapterView<?> aView, View view,
                        int position, final long id) {
                    // TODO Auto-generated method stub
                    AlertDialog.Builder option = new AlertDialog.Builder(context);
                    option.setTitle(R.string.title_dialog_option);
                    option.setItems(R.array.dialog_option_content, 
                            new DialogInterface.OnClickListener() {
                                
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    // TODO Auto-generated method stub
                                    //Selector for option menu
                                    switch(which) {
                                    case 0:
                                        HometaskDialog hDialog = new HometaskDialog(context, (int)id);
                                        hDialog.show();
                                        break;
                                    case 1:
                                        ShowDialog sDialog = new ShowDialog(context, (int)id);
                                        sDialog.show();
                                        break;
                                    case 2:
                                        EditDialog eDialog = new EditDialog(context, (int)id);
                                        eDialog.show();
                                        break;
                                    case 3:
                                        RemoveDialog rDialog = new RemoveDialog(context, (int)id);
                                        rDialog.show();
                                        break;
                                    }
                                }
                            });
                    option.show();
                }
            });
        }
        return view;
    }
 
}


Программу начинал писать в качестве учебной и построение интерфейса происходит не самым разумным способом, но переделывать этот набор классов тоже очень не хочется... Проблема, в том что я не знаю, как отследить в этом классе закрытие диалогов, чтобы обновить ListView и WeekAdapter.
Кто знает, очень прошу, помощь! Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2013, 19:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отслеживание закрытия диалога (Программирование Android):

Дождаться закрытия диалога - Программирование Android
Один и тот же диалог используется в двух активити. Т.к. его реализация достаточно громоздка, пытаюсь его использовать повторно, а не...

Какой метод фрагмента срабатывает после закрытия диалога? - Программирование Android
Запускаю FragmentActivity, в методе onResume запускаю DialogFragment. Пока выполняются кое-какие действия, диалог висит, перекрыв...

Вызов диалога из диалога - Программирование Android
Есть диалог, как сделать чтобы при выборе определенной позиции в это диалоге открывался другой диалог? case 0: AlertDialog.Builder...

Дисклеймер в виде диалога - Программирование Android
Как лучше создать дисклеймер в виде диалогового окна: нажимаешь на кнопку &quot;Согласен&quot;, он больше не показывается, нажимаешь кнопку &quot;Не...

Переопределить стиль диалога - Программирование Android
Здравствуйте! Никак не получается корректно переопределить стиль диалога. Пытаюсь так: &lt;style name=&quot;Theme.Paper.Dialog&quot;...

Реализация диалога android - Программирование Android
Доброго времени суток. Решил написать простенький месседжер, и столкнулся с такой проблемой: Не знаю как это называется и как такое...

4
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
23.11.2013, 20:12 #2
Java
1
2
3
4
5
6
7
option.setOnCancelListener(new OnCancelListener() {
            
            @Override
            public void onCancel(DialogInterface dialog) {
                
            }
        })
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
23.11.2013, 20:15  [ТС] #3
Мне нужно, чтобы срабатывало и на positive button, а это как я понял, только на отмену или нет?
0
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
23.11.2013, 20:25 #4
то что я написал - закрытие, есть нужно на кнопку то и ставьте соответственно
setPositiv ..
setNegativ ..
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
23.11.2013, 20:29  [ТС] #5
У меня эти кнопки уже определены в классах диалога, там идет работа с бд

Добавлено через 1 минуту
Извините, кажется, понял, как изменить класс)
0
23.11.2013, 20:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2013, 20:29
Привет! Вот еще темы с ответами:

Получить информацию из диалога - Программирование Android
Всем привет! Есть в методе onCreate: new AlertDialog.Builder(this) .setView(R.layout.dialog_signin) ...

Передать данные из диалога - Программирование Android
Доброго всем времени суток. Ребят вопрос простейший, хочется узнать как делать правильно. Есть класс расширяющий класс Dialog. С...

Передача значения в Список из диалога - Программирование Android
для создания нового пункта в списке вызывается диалог в котором пользователю предлагается ввести его имя. Диалог создаётся из другого...

Создание своего простейшего диалога - Программирование Android
Добрый день! Решил разработать свой простой диалог (универсальный отдельный класс) и многократно использовать его (вызывать) из разных...


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

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

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