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

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

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

Не верные данные из базы данных - Android

08.05.2015, 09:33. Просмотров 165. Ответов 0
Метки нет (Все метки)

Столкнулся с небольшое проблемкой. Ошибку не замечаю, но:
В таблице содержится колонка event_follow, которая по дефолту 0.
На фрагменте просмотра события есть CkeckBox, который меняет на "1" если галочка стаит и "0" если нет.

Метод onCheckedChanged
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                Log.i(TAG, "onCheckedChanged");
                
                dbHelper = new DatabaseHelper(getActivity());
                try {
                    dbHelper.open();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                if(isChecked) {
                    checked = 1;
                } else {
                    checked = 0;
                }
                dbHelper.updateFollow(event, checked);
                dbHelper.close();
                }
            });
Метод updateFollow, который обновляет колонку
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public int updateFollow(Event event, int checked) {
        Log.i(TAG, "updateFollow");
        System.out.println("updateFollow event: " + event);
        System.out.println("updateFollow checked: " + checked);
        
        ContentValues cv = new ContentValues();
        cv.put(COLUMN_EVENT_FOLLOW, checked);
        
        return db.update(EVENT_TABLE_NAME, 
                cv, 
                COLUMN_EVENT_ID + " = ?", 
                new String[] {String.valueOf(event.getId())});
    }
Здесь проверяю на наличие цифорки
Java
1
2
3
4
5
6
7
8
9
10
11
12
for (int i = 0; i < list.size(); i++) {
                // Здесь просто смотрю, правильные ли данные подаю
            System.out.println("List item getFollow(): " + list.get(i).getFollow());
            System.out.println("List item follow: " + list.get(i).follow);
            System.out.println("List item name: " + list.get(i).getName());
            System.out.println("List item date: " + list.get(i).getStartDate());
            //Дата и имя верные получаю, а follow всегда 0
            
            if (list.get(i).getFollow() == 1) {
                //
            }
        }
После чекБокса проверял, поменялось ли значение в калонке. Поменялось, но вывод всегда - 0.

Добавлено через 20 минут
Метод который вытягивает все события из базы.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public ArrayList<Event> getEvents() {
        ArrayList<Event> list = new ArrayList<Event>();
        String query = "SELECT * FROM " + EVENT_TABLE_NAME;
        Log.i(TAG, "getEvents");
        Log.e(TAG, query);
        
        Cursor cursor = db.rawQuery(query, null);
        if (cursor.moveToFirst()) {
            do {
                Event event = new Event();
                event.setId(cursor.getInt(cursor.getColumnIndex(COLUMN_EVENT_ID)));
                event.setName(cursor.getString(cursor.getColumnIndex(COLUMN_EVENT_NAME)));
                //event.setImage(cursor.getString(cursor.getColumnIndex(COLUMN_EVENT_IMAGE)));
                event.setStartDate(cursor.getString(cursor.getColumnIndex(COLUMN_EVENT_START_DATE)));
                event.setEndDate(cursor.getString(cursor.getColumnIndex(COLUMN_EVENT_END_DATE)));
                event.setPrice(cursor.getString(cursor.getColumnIndex(COLUMN_EVENT_PRICE)));
                event.setDetails(cursor.getString(cursor.getColumnIndex(COLUMN_EVENT_DETAILS)));
                event.setCategory(cursor.getString(cursor.getColumnIndex(COLUMN_EVENT_CATEGORY)));
                list.add(event);
            } while (cursor.moveToNext());
        }
        return list;
    }
Добавлено через 13 часов 23 минуты
Нашёл ошибку и испрваил!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2015, 09:33     Не верные данные из базы данных
Посмотрите здесь:

Android Передать данные из базы в ListView
Android Вывод из базы данных
Android Шифрование базы данных
Android SQLite обновление базы данных
Выборка с базы данных SQLite Android
Базы данных в андроиде Android
Android Чтение данных из базы
Android Инициализация базы данных
Android Обновление Базы данных
Android На каждой странице ViewPager'а должен отображаться свой ListFragment данные для которого берутся из базы
Создание базы данных Android
Обновление базы данных вручную Android

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

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

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