Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Tkas
1 / 1 / 1
Регистрация: 26.02.2012
Сообщений: 42
#1

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

03.12.2013, 17:46. Просмотров 340. Ответов 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
Ответы с готовыми решениями:

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

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

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

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2013, 17:46

При клике в каком-то месте на странице открываются рекламные страницы в Google Chrome
Рандомно открываются рекламные странички при клике в Google Chrome,например...

Мне нужно поменять фон сайта, т.е вставить картинку, в каком месте css можно его поменять.И каким образом?
* { margin: 0; padding: 0; box-sizing: border-box; ...

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


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

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

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