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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android как прочитать обложку и метаданные с аудио файла? http://www.cyberforum.ru/android-dev/thread1026939.html
Ысем привет! скажите пожалуйста, как прочитать обложку и метаданные с аудио файла? а то на сайте Android API не вижу. но должно быть. стандартный плеер это умеет делать. Добавлено через 41 минуту...
Программирование Android смена видимости элемента в диалоге есть диалог озданный на собственное шаблоне. при нажатии "ок" запускается долгий скрипт, перед его запуском делаю setVisibility(1) для прогресс бара, находящимся в шаблоне диалоге. на практике же... http://www.cyberforum.ru/android-dev/thread1026729.html
Парсинг xml Android и открытие при нажатии ListView Программирование Android
Здравствуйте. Нашел пример парсинга xml и вывода в ListView http://androidituts.com/android-xml-parsing-tutorial/ При нажатии на строку ListView должна выводиться информация в новом активити, но...
Запуск приложения из другого приложения Программирование Android
Привет товарищи! Имеется два приложения. Задача следующая: Из первого приложения запустить второе, да так, что бы второе приложение запустилось по другому сценарию, нежели чем при обычном запуске....
Программирование Android Drag and Drop http://www.cyberforum.ru/android-dev/thread1026522.html
Есть ImageView на RelativeLayout, которую собственно нужно "таскать" по этому layout Все сделал и вроде даже работает, за исключением того, что картинка становится не совсем на то место=) ...
Программирование Android Папки Как сделать чтоб APK создал отдельную папку да ввода\вывода в нее\из нее файлов? подробнее

Показать сообщение отдельно
Tkas
1 / 1 / 0
Регистрация: 26.02.2012
Сообщений: 42

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

03.12.2013, 17:46. Просмотров 302. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru