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

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

Войти
Регистрация
Восстановить пароль
 
Tkas
1 / 1 / 0
Регистрация: 26.02.2012
Сообщений: 42
03.12.2013, 17:46     В каком месте кода нужно вызвать LoaderManager при работе с диалогами? #1
Здравствуйте. У меня вот такой вопрос: у меня есть список, который заполняется из базы данных с помощью 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);
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2013, 17:46     В каком месте кода нужно вызвать LoaderManager при работе с диалогами?
Посмотрите здесь:

Вылет приложения при работе с jsoup Android
LinearLayout при вызове клавиатуры остается на месте Android
LogCat, как понять по логам в каком месте кода произощла ошибка? Android
Android Ошибка при работе с сетью
Android Русский язык при работе с бд
Ошибка при работе Android Studio Android
Обработка событий при работе с sqlite Android
Быстродействие EditText при работе с html Android
Борьба за TextView при работе с CountDownTimer Android
Потоки при работе с камерой Android
Android Ошибка при работе с фрагментами
Android Как вызвать метод только при последующих запусках приложения?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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