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

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

Войти
Регистрация
Восстановить пароль
 
Tkas
1 / 1 / 0
Регистрация: 26.02.2012
Сообщений: 42
#1

В каком месте кода нужно вызвать LoaderManager при работе с диалогами? - Программирование Android

03.12.2013, 17:46. Просмотров 304. Ответов 0
Метки нет (Все метки)

Здравствуйте. У меня вот такой вопрос: у меня есть список, который заполняется из базы данных с помощью CursorLoader. При долгом нажатии на одном из пунктов этого списка выскакивает АлертДиалог, который спрашивает нужно ли удалить этот конкретный пункт из списка или нет. Если нажать "да", то пункт удаляется, но вот обновление списка не происходит, и чтобы увидеть изменение списка нужно снова вызвать диалоговое окно (не обязательно при этом удалять другой пункт, можно нажать отмену). Где правильно вызвать ЛоадМенеджер? При моей реализации в методе onItemLongClick происходит именно то, что я описывал. Приведу код:
MainActivity
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
lvMain.setOnItemLongClickListener(new OnItemLongClickListener() {
 
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) {
                dialog.setId(id);
                dialog.setDb(itemsDB);
                dialog.show(getFragmentManager(), "dialog");
                getLoaderManager().getLoader(0).forceLoad();
                return false;
            }
        });

Dialog (пробовал вызвать в onClick, но в таком случае приложение зависает и выкидывается)
Кликните здесь для просмотра всего текста
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
public class Dialog extends DialogFragment implements OnClickListener {
 
    SQLiteDatabase db;
    long id;
 
    public void setDb(ItemsDB db) {
        this.db = db.getWritableDatabase();
    }
 
    public void setId(long id) {
        this.id = id;
    }
 
    public AlertDialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity())
                                                            .setTitle("Удаление")
                                                            .setPositiveButton("Да", this)
                                                            .setNegativeButton("Нет", this)
                                                            .setMessage("Вы действительно хотите удалить покупку?");
        return dialog.create();
    }
 
    @Override
    public void onClick(DialogInterface d, int which) {
        // TODO Auto-generated method stub
        switch(which) {
        case AlertDialog.BUTTON_POSITIVE:
            db.delete(ItemsDB.ITEM_TABLE, ItemsDB.ID + "=" + id, null);
            break;
        case AlertDialog.BUTTON_NEGATIVE:
            break;
        }
    }
    
    public void onDismiss(DialogInterface dialog) {
        super.onDismiss(dialog);
    }
 
    public void onCancel(DialogInterface dialog) {
        super.onCancel(dialog);
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2013, 17:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В каком месте кода нужно вызвать LoaderManager при работе с диалогами? (Программирование Android):

LogCat, как понять по логам в каком месте кода произощла ошибка? - Программирование Android
как используя логи для определения ошибок исполнения кода? То есть в логах пишется красное сообщение с описанием проблемы а как сделать...

В каком месте кода надо прятать окно приложения при старте? - C++
Приложение - на основе диалога. Требуется, чтобы при старте приложения его окно исчезало с экрана и пряталось в SysTray. Сделать значок в...

При каком интервале в работе нужно компьютер выключать? - Компьютерное железо
Хотел бы послушать специалистов. На компе я работаю периодически, поэтому меня интересует вопрос: выключать ли комп, если у меня перерыв в...

Объявление функций - в каком месте кода объявлять собственные функции - C++ Builder
Здравствуйте. Еще раз всех с наступившим. Появилась пара вопросов, наверное очень глупых по языку. Итак, первый. Пишу обычный...

Отслеживание в каком месте программного кода происходит изменение значения переменной - C#
Привет! Мне необходимо отследить в каком месте программного кода происходит изменение значения переменной. В своей программе я...

При клике в каком-то месте на странице открываются рекламные страницы в Google Chrome - Удаление вирусов
Рандомно открываются рекламные странички при клике в Google Chrome,например Вулкан. Началось после того,как день назад случайно скачал,и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2013, 17:46
Привет! Вот еще темы с ответами:

В каком месте заполняется EditorFor, что при переходе оно сразу в Value кидает нужный текст - C# MVC
Добрый день. Вообщем начал тренироваться с asp.net mvc и вот столкнулся с проблемой для себя. Сразу говорю, что все работает, нужно...

Принцип кода при ступенчатой работе кода - PHP
В очередной раз прошу помощи. Есть три ступеньки. У каждой ступеньки свой набор инфы. Пример: Первая ступень. Выбираем из...

В каком случае вызовется деструктор при работе через указатель - C++ Qt
Я создаю мультиоконное приложение. Для выведения на экран неглавного окна (все неглавные окна - потомки QDialog), я обращаюсь к нему через...

как вызвать редактор формул при работе в конструкторе форм? - MS Access
как вызвать редактор формул при работе в конструкторе форм? Добавлено через 25 минут Equation


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

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

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