Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
1

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

23.11.2013, 19:21. Просмотров 1030. Ответов 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
Ответы с готовыми решениями:

Дождаться закрытия диалога
Один и тот же диалог используется в двух активити. Т.к. его реализация...

Прервать выполнение кода до закрытия диалога
Кнопка &quot;создать документ&quot;. Нужно сделать диалог-предупреждение типа &quot;введенные...

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

Вызов диалога из диалога
Есть диалог, как сделать чтобы при выборе определенной позиции в это диалоге...

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

4
NiRamz
211 / 211 / 33
Регистрация: 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 / 13
Регистрация: 07.10.2012
Сообщений: 606
23.11.2013, 20:15  [ТС] 3
Мне нужно, чтобы срабатывало и на positive button, а это как я понял, только на отмену или нет?
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
23.11.2013, 20:25 4
то что я написал - закрытие, есть нужно на кнопку то и ставьте соответственно
setPositiv ..
setNegativ ..
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
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
Доброго времени суток. Решил написать простенький месседжер, и столкнулся с...

Переопределить стиль диалога
Здравствуйте! Никак не получается корректно переопределить стиль диалога....

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


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

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

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