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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.61
Naomis
6 / 6 / 1
Регистрация: 11.03.2015
Сообщений: 210
Завершенные тесты: 1
#1

SQLite and ListView. Ввод и вывод данных - Программирование Android

12.04.2015, 21:15. Просмотров 3818. Ответов 53
Метки нет (Все метки)

Здравствуйте. Пишу программу(кто бы мог подумать). Есть подозрения, что данные в БД вбиваются не правильно или как раз выводятся неправильно. Этого ни как всё не пойму.Собственно код:
Вывод данных в лог с помощью кнопки из таблицы, что в БД.
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
 btnEvent  = (Button) findViewById(R.id.log_log_log);
        btnEvent.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
 
                Log.d(TAG, "--- Rows in event: ---");
                // делаем запрос всех данных из таблицы , получаем Cursor
                //Cursor c = db.query("event", null, null, null, null, null, null);
                Cursor c = db.getAllData("event");
 
                if (c.moveToFirst()) {
                    int idColID = c.getColumnIndex(DB.EVENT_COLUMN_ID);
                    int idColMAN = c.getColumnIndex(DB.EVENT_COLUMN_MAN);
                    int idColMEETING = c.getColumnIndex(DB.EVENT_COLUMN_MEETING);
                    int idColET = c.getColumnIndex(DB.EVENT_COLUMN_EVENT_TYPE);
                    int idColVALUE = c.getColumnIndex(DB.EVENT_COLUMN_VALUE);
 
                    do {
                        // получаем значения по номерам столбцов и пишем все в лог
                        Log.d(TAG,
                                "ID = " + c.getInt(idColID) +
                                        ", MAN = " + c.getInt(idColMAN) +
                                        ", MEETING = " + c.getInt(idColMEETING) +
                                        ", EVENT TYPE = " + c.getInt(idColET) +
                                        ", VALUE = " + c.getInt(idColVALUE));
                        // переход на следующую строку
                        // а если следующей нет (текущая - последняя), то false - выходим из цикла
                    } while (c.moveToNext());
                } else {
                    Log.d(TAG, "0 rows");
                }
                    }
        });
Лог после вывода:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
D/EVENT__ACTIVITY﹕ --- Rows in event: ---
D/EVENT__ACTIVITY﹕ ID = 1, MAN = 1, MEETING = 0, EVENT TYPE = 0, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 2, MAN = 0, MEETING = 1, EVENT TYPE = 0, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 3, MAN = 0, MEETING = 0, EVENT TYPE = 1, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 4, MAN = 0, MEETING = 0, EVENT TYPE = 0, VALUE = 1
D/EVENT__ACTIVITY﹕ ID = 5, MAN = 1, MEETING = 0, EVENT TYPE = 0, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 6, MAN = 0, MEETING = 1, EVENT TYPE = 0, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 7, MAN = 0, MEETING = 0, EVENT TYPE = 1, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 8, MAN = 0, MEETING = 0, EVENT TYPE = 0, VALUE = 1
D/EVENT__ACTIVITY﹕ ID = 9, MAN = 1, MEETING = 0, EVENT TYPE = 0, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 10, MAN = 0, MEETING = 1, EVENT TYPE = 0, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 11, MAN = 0, MEETING = 0, EVENT TYPE = 1, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 12, MAN = 0, MEETING = 0, EVENT TYPE = 0, VALUE = 1
D/EVENT__ACTIVITY﹕ ID = 13, MAN = 2, MEETING = 0, EVENT TYPE = 0, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 14, MAN = 0, MEETING = 2, EVENT TYPE = 0, VALUE = 0
И так далее.

Фишка в том, что добавляются 4 интовых значения, а при выводе получается не одна строка, а четыре и некой лесенкой, можно увидеть:
11000
20100
30010
40001
Как-то так. Запихнул это на вывод в ListView, но там тоже ни чего хорошего вывод цифры происходит через каждые три строчки.

Добавление в данных в таблицу
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 btnEvent  = (Button) findViewById(R.id.new_event_in_tab);
        btnEvent.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Do something in response to button click
 
 
                boolean checkMan= !true,
                        checkET = !true,
                        checkMeet = !true;
 
                Log.v(TAG, "ТЫК!" );
 
                //checkMan = !true; checkET = !true; checkMeet = !true;
 
                Log.v(TAG, "РАБОТАЕ СО СПИНЕРАМИ" );
                if (edtMan.getSelectedItem() != null)
                {
                    checkMan = true;
 
                    cur = db.GetCatalogValueByName("man", "_id", "name", edtMan.getSelectedItem().toString());
                    cManID = cur.getInt(cur.getColumnIndex("_id"));
                }
                if (edtET.getSelectedItem() != null)
                {
                    checkET = true;
                    cur = db.GetCatalogValueByName("event_type", "_id", "name", edtET.getSelectedItem().toString());
                    cETID = cur.getInt(cur.getColumnIndex("_id"));
                    //db.addRec("event", DB.EVENT_COLUMN_EVENT_TYPE, cETID );
                }
                if (edtMeet.getSelectedItem() != null)
                {
                    checkMeet = true;
                    cur = db.GetCatalogValueByName("meeting", "_id", "name", edtMeet.getSelectedItem().toString());
                    cMeetID = cur.getInt(cur.getColumnIndex("_id"));
                    //db.addRec("event", DB.EVENT_COLUMN_MEETING, cMeetID );
                }
 
                Log.v(TAG, "ПРОВЕРЯЕМ ФЛАГИ НА 'TRUE'. ИМЕЮТСЯ ЛИ ДАННЫЕ В СПИНЕРАХ " );
 
                //Если все значения true, то записываем данные в таблицу "event"
                if(checkMan != false & checkET != false & checkMeet != false){
                    db.addRec("event", "ManId", cManID );
                    db.addRec("event", "MeetingId", cMeetID );
                    db.addRec("event", "EventTypeId", cETID );
                    Log.v(TAG, "ОК" );
 
                    Log.v(TAG, "ЗАПИСЬ В ТАБЛИЦУ ЧЕКБОКСИКА" );
                    if (checkboxEvent.isChecked() == true) {
                        db.addRec("event", DB.EVENT_COLUMN_VALUE, 1 );
                        Log.v(TAG, "ОК---1" );
 
                    }else {
                        db.addRec("event", DB.EVENT_COLUMN_VALUE, 0 );
                        Log.v(TAG, "ОК---0" );
                    }
                }
            }
        });
В заранее спасибо за вашу помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2015, 21:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос SQLite and ListView. Ввод и вывод данных (Программирование Android):

Listview вывод данных и переход по нажатию на другой Listview SQLite - Программирование Android
Доброго извините за название темы, долго не мог сформировать название, В общем у меня беда с пытаюсь написать программу где первый экран...

Android, ListView, база данных SQLite - Программирование Android
Как достать картинку из БД (SQLite) и поместить её в ListView??? помогите, пожалуйста :)

Загрузка данных из SQLite для каждого пункта ListView - Программирование Android
Здравствуйте, у меня такая проблема, не могу сделать так что бы для каждого пункта списка выводилась соответствующая строка в БД в новой...

Данные из SQlite в ListView, обработка события ListView - Программирование Android
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД. mList.setOnItemClickListener(new...

SQLite вывод данных - Программирование Android
Здравствуйте. Подскажите, как вывести данные из колонки БД и записать в массив. Пытался пока что только извлечь данные в переменные: ...

Вывод данных из базы данных SQLite - Программирование Android
Здравствуйте уважаемые форумчане! Делаю программу для работы с базой данных SQLite. Смысл простой: есть одна база, в ней 9 таблиц, от 2 до...

53
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
19.04.2015, 12:55 #31
Это что?
DB_CREATE
EVENT_TYPE_DB_CREATE
MEETING_DB_CREATE
0
Naomis
6 / 6 / 1
Регистрация: 11.03.2015
Сообщений: 210
Завершенные тесты: 1
19.04.2015, 14:02  [ТС] #32
Rube, это создание других таблиц в БД.
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
//man
    private static final String DB_TABLE = "man";
    public static final String COLUMN_ID = "_id";
    public static final String COLUMN_NAME = "name";
 
    private static final String DB_CREATE =
            "create table " + DB_TABLE + "(" +
                    COLUMN_ID + " integer primary key autoincrement, " +
                    COLUMN_NAME + " text" +
                    ");";
 
    //event type
    private static final String EVENT_TYPE_TABLE = "event_type";
    public static final String EVENT_TYPE_COLUMN_ID = "_id";
    public static final String EVENT_TYPE_COLUMN_NAME = "name";
 
    private static final String EVENT_TYPE_DB_CREATE =
            "create table " + EVENT_TYPE_TABLE + "(" +
                    EVENT_TYPE_COLUMN_ID + " integer primary key autoincrement, " +
                    EVENT_TYPE_COLUMN_NAME + " text" +
                    ");";
 
    //meeting
    private static final String MEETING_TABLE = "meeting";
    public static final String MEETING_COLUMN_ID = "_id";
    public static final String MEETING_COLUMN_NAME = "name";
 
    private static final String MEETING_DB_CREATE =
            "create table " + MEETING_TABLE + "(" +
                    MEETING_COLUMN_ID + " integer primary key autoincrement, " +
                    MEETING_COLUMN_NAME + " text" +
                    ");";
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
19.04.2015, 15:04 #33
Ясно. А в курсоре есть MeetingId?
0
Naomis
6 / 6 / 1
Регистрация: 11.03.2015
Сообщений: 210
Завершенные тесты: 1
19.04.2015, 15:26  [ТС] #34
Rube, вот создаю список.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//список на экране
        Cursor curEv = db.getAllData("event");
        startManagingCursor(curEv);
 
        // формируем столбцы сопоставления
        String[] from = new String[] { DB.EVENT_COLUMN_MEETING,
                                       DB.EVENT_COLUMN_MAN,
                                       DB.EVENT_COLUMN_EVENT_TYPE,
                                       DB.EVENT_COLUMN_VALUE};
        int[] to = new int[] { R.id.tvText,
                               R.id.tvText1,
                               R.id.tvText2,
                               R.id.tvText3};
 
 
        // создааем адаптер и настраиваем список
        scAdapter = new SimpleCursorAdapter(this, R.layout.item_ev, curEv, from, to, 0);
        lvDataEvent = (ListView) findViewById(R.id.lvDataEvent);
        lvDataEvent.setAdapter(scAdapter);
 
        // добавляем контекстное меню к списку
        registerForContextMenu(lvDataEvent);
db.getAllData("event") - это:
Java
1
2
3
4
// получить все данные из таблицы
    public Cursor getAllData(String name_Tb) {
        return mDB.query(name_Tb, null, null, null, null, null, null);
    }
Вот сама кнопка по добавлению данных и в самом конце обновлению адаптера
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
btnEvent  = (Button) findViewById(R.id.new_event_in_tab);
        btnEvent.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Do something in response to button click
 
 
                boolean checkMan= false;
                boolean checkET = false;
                boolean checkMeet = false;
 
                Log.v(TAG, "ТЫК!" );
 
                //checkMan = !true; checkET = !true; checkMeet = !true;
 
                Log.v(TAG, "РАБОТАЕ СО СПИНЕРАМИ" );
                if (edtMan.getSelectedItem() != null)
                {
                    checkMan = true;
 
                    cur = db.GetCatalogValueByName("man", "_id", "name", edtMan.getSelectedItem().toString());
                    cManID = cur.getInt(cur.getColumnIndex("_id"));
                }
                if (edtET.getSelectedItem() != null)
                {
                    checkET = true;
                    cur = db.GetCatalogValueByName("event_type", "_id", "name", edtET.getSelectedItem().toString());
                    cETID = cur.getInt(cur.getColumnIndex("_id"));
                    //db.addRec("event", DB.EVENT_COLUMN_EVENT_TYPE, cETID );
                }
                if (edtMeet.getSelectedItem() != null)
                {
                    checkMeet = true;
                    cur = db.GetCatalogValueByName("meeting", "_id", "name", edtMeet.getSelectedItem().toString());
                    cMeetID = cur.getInt(cur.getColumnIndex("_id"));
                    //db.addRec("event", DB.EVENT_COLUMN_MEETING, cMeetID );
                }
 
                Log.v(TAG, "ПРОВЕРЯЕМ ФЛАГИ НА 'TRUE'. ИМЕЮТСЯ ЛИ ДАННЫЕ В СПИНЕРАХ " );
 
                //Если все значения true, то записываем данные в таблицу "event"
                if(checkMan && checkET && checkMeet){
 
//                    db.addRec("event", "ManId", cManID );
//                    db.addRec("event", "MeetingId", cMeetID );
//                    db.addRec("event", "EventTypeId", cETID );
//                    Log.v(TAG, "ОК" );
                    Log.v(TAG, "РАБОТА С ЧЕКБОКСИКА" );
                    if (checkboxEvent.isChecked()){
//                        db.addRec("event", DB.EVENT_COLUMN_VALUE, 1 );
                        cChB = 1;
                        Log.v(TAG, "ОК---1" );
                    }else {
//                        db.addRec("event", DB.EVENT_COLUMN_VALUE, 0 );
                        cChB = 0;
                        Log.v(TAG, "ОК---0" );
                    }
                    //Добавление данных в таблицу
                    db.addRecFour("event",
                            DB.EVENT_COLUMN_MAN, cManID,
                            DB.EVENT_COLUMN_MEETING, cMeetID,
                            DB.EVENT_COLUMN_EVENT_TYPE, cETID,
                            DB.EVENT_COLUMN_VALUE, cChB);
 
 
                    cur.requery();
                    scAdapter.changeCursor(cur);
                    scAdapter.notifyDataSetChanged();
                }
 
            }
        });
Добавлено через 15 минут
Rube, так что курсор должен быть полным, с тем столбцом.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
19.04.2015, 15:41 #35
А db.GetCatalogValueByName что там? Есть там MeetingId?
0
Naomis
6 / 6 / 1
Регистрация: 11.03.2015
Сообщений: 210
Завершенные тесты: 1
19.04.2015, 15:47  [ТС] #36
Rube,
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
// ПОЛУЧЕНИЕ ПОЛЯ В СПРАВОЧНИКЕ ПО ИМЕНИ ПОЛЯ И СПРАВОЧНИКА
    public Cursor GetCatalogValueByName(String CatalogFullName,
                                        String FieldFullName,
                                        String ConditionField,
                                        String Value)
    {
        //Open();
 
        Log.v(TAG, "----МЫ В GetCatalogValueByName----");
 
        Log.v(TAG,"---ПРОСМОТР ПОСТУПАЮЩИХ ДАННЫХ." + " select " + FieldFullName + " from " + CatalogFullName +
                " where " + ConditionField + " = '" + Value + "'" );
 
        Cursor cur = mDB.rawQuery(" select " + FieldFullName +
                " from " + CatalogFullName +
                " where " + ConditionField + " = '" + Value + "'"
                , null);
 
        Log.v(TAG, " select " + FieldFullName +
                " from " + CatalogFullName +
                " where " + ConditionField + " = '" + Value + "'");
 
        cur.moveToFirst();
        //Close();
 
        Log.v(TAG, cur.getCount() + "");
 
        return cur;
    }
без логов для читабельности
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// ПОЛУЧЕНИЕ ПОЛЯ В СПРАВОЧНИКЕ ПО ИМЕНИ ПОЛЯ И СПРАВОЧНИКА
    public Cursor GetCatalogValueByName(String CatalogFullName,
                                        String FieldFullName,
                                        String ConditionField,
                                        String Value)
    {
        Cursor cur = mDB.rawQuery(" select " + FieldFullName +
                " from " + CatalogFullName +
                " where " + ConditionField + " = '" + Value + "'"
                , null);
 
        cur.moveToFirst();
        return cur;
    }
в активити используется тут
Java
1
2
3
4
5
6
7
if (edtMeet.getSelectedItem() != null)
                {
                    checkMeet = true;
                    cur = db.GetCatalogValueByName("meeting", "_id", "name", edtMeet.getSelectedItem().toString());
                    cMeetID = cur.getInt(cur.getColumnIndex("_id"));
                    //db.addRec("event", DB.EVENT_COLUMN_MEETING, cMeetID );
                }
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
19.04.2015, 20:18 #37
MeetingId находится в т. event, а GetCatalogValueByName получает такую таблицу в параметрах? Нет.
Значит в курсоре нету столбца MeetingId для вставки в адаптер.
Цитата Сообщение от Naomis Посмотреть сообщение
cur = db.GetCatalogValueByName("man"...
cur = db.GetCatalogValueByName("event_type"...
cur = db.GetCatalogValueByName("meeting"...
1
Naomis
6 / 6 / 1
Регистрация: 11.03.2015
Сообщений: 210
Завершенные тесты: 1
19.04.2015, 20:39  [ТС] #38
Rube, постой, в какой части кода? Немного не догоняю....
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
19.04.2015, 20:50 #39
Смотри с конца.
Java
1
2
3
cur.requery();
scAdapter.changeCursor(cur);
scAdapter.notifyDataSetChanged();
Ищем чему равен cur, например из последнего if
Java
1
cur = db.GetCatalogValueByName("meeting", "_id", "name", edtMeet.getSelectedItem().toString());
Смотрим что возвращает метод GetCatalogValueByName
Java
1
2
Cursor cur = mDB.rawQuery(" select " + "_id" +
    " from " + "meeting "+
и есть ли столбец MeetingId в таблице meeting?
Java
1
2
3
4
5
6
7
8
9
    private static final String MEETING_TABLE = "meeting";
    public static final String MEETING_COLUMN_ID = "_id";
    public static final String MEETING_COLUMN_NAME = "name";
 
    private static final String MEETING_DB_CREATE =
            "create table " + MEETING_TABLE + "(" +
                    MEETING_COLUMN_ID + " integer primary key autoincrement, " +
                    MEETING_COLUMN_NAME + " text" +
                    ");";
Нету!
1
Naomis
6 / 6 / 1
Регистрация: 11.03.2015
Сообщений: 210
Завершенные тесты: 1
20.04.2015, 00:57  [ТС] #40
Rube, я по прежнему не въезжаю. GetCatalogValueByName мы используем таблицу "meeting", например и вытаскиваем из неё значение _id сравнивая строки в спинерах и в БД. На сколько я понимаю это работает так. а поле мы используем полученные id и записываем в бд. То есть нужно после записи полностью переопределить курсор?
Вместо этого
Java
1
2
3
cur.requery();
                    scAdapter.changeCursor(cur);
                    scAdapter.notifyDataSetChanged();
сделать так?
Java
1
2
3
                    cur = db.getAllData("event");
                    scAdapter.changeCursor(cur);
                    scAdapter.notifyDataSetChanged();
Добавлено через 6 минут
сделал так, получилось, отлично, спасибо!

Добавлено через 3 часа 23 минуты
Новый вопрос. Культурный вывод наконец настроен, осталось сделать так, чтобы список выводил не цифры(id на данные трёх таблиц), что хранятся в 4-й таблице(event), а данные из из других таблиц. То есть я так понимаю, что мне нужно передавать данные из 4-й таблицы, сравнивать их с id первых трех таблиц("man", "event_type", "meeting") и забирать данные для вывода. Так понимаю, что это тоже делается с помощью курсоров и qwery запросов, но не много не представляю как. По этому если возможно, то может ли кто-нибудь привести пример, чтобы дальше я уже мог плясать. В заранее спасибо.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
20.04.2015, 07:53 #41
Я бы привел пример если бы представлял что такое "man", "event_type", "meeting", и что программа делает. Объясни, желательно на примере попроще.
0
Naomis
6 / 6 / 1
Регистрация: 11.03.2015
Сообщений: 210
Завершенные тесты: 1
29.04.2015, 22:35  [ТС] #42
Всем доброго времени суток. Пропал на немного.

Rube
Нужно сделать как-то так:
Вывод данных из трёх таблиц(БД) с помощью четвёртой. Фишка такова. в четвёртой таблице "event" лежат id на данные в других таблицах ("man", "event_type", "meeting"), которые заполнены строками(тип string я имею ввиду). Так вот берём данные из "event" (то есть id), сравниваем с id-шками в других таблицах и подгребаем эти данные, ну и выводим на экранчик соответственно. После там навести марафет с возможностью удаления, редактирования. Но это уже другая песня.

Есть код который предложили для решения проблемы. Только я его немного не догоняю.
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
dbHelper.Open();
curLsitElem = dbHelper.FetchAllList(FormattingDateDMY(day + "." + month + "." + year));
dbHelper.Close();
 
int size = 0;
int i = 0;
 
ArrayList<Map<String, Object>> document = null;
curLsitElem.moveToFirst();
size = curLsitElem.getCount();
 
document = new ArrayList<Map<String, Object>>();
HashMap<String, Object> map;
for (int i1 = 0; i1 < size; i1++)
{
 dbHelper.Open();
 
 map = new HashMap<String, Object>();
 map.put("ID", curLsitElem.getString(curLsitElem.getColumnIndex("ID")));
 map.put("Address", curLsitElem.getString(curLsitElem.getColumnIndex("Address")));
 dbHelper.Close();
 document.add(map);
 
 curLsitElem.moveToNext();
}
curLsitElem.close();
 
 
lisview = (ListView) findViewById(android.R.id.list);
adapter1 = new SimpleAdapter(this, document, R.layout.activity_row,
     new String[] {"ID", "Address"}, 
     new int[] {R.id.lblVisitID, R.id.lblAddress});
lisview.setAdapter(adapter1);
lisview.setOnItemClickListener(itemListener);
lisview.setOnItemLongClickListener(itemLongListener);
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
30.04.2015, 09:15 #43
Это код юноши, но не мужчины, мы будем делать правильно и использовать CursorAdapter.
Сперва тебе надо в классе БД создать метод который возвратит курсор с данными.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Cursor cursor = dbHelper.fetchAllCountries();
 
// Поля БД с данными для вставки
String[] columns = new String[] {
    CountriesDbAdapter.KEY_CODE,
    CountriesDbAdapter.KEY_NAME };
 
// id вьюшек из итема.xml
int[] to = new int[] { 
    R.id.code,
    R.id.name };
 
// создаем адаптер с параметрами
dataAdapter = new SimpleCursorAdapter(this, R.layout.country_info, 
    cursor, columns, to, 0);
    
// находим ListView и сетим в него адаптер
ListView listView = (ListView) findViewById(R.id.listView1);
listView.setAdapter(dataAdapter);
тут есть все что надо.
0
Naomis
6 / 6 / 1
Регистрация: 11.03.2015
Сообщений: 210
Завершенные тесты: 1
30.04.2015, 14:46  [ТС] #44
Rube, спасибо, но чем не хорош тот код?
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
30.04.2015, 15:08 #45
Тем, что надо напрямую работать с БД.
0
30.04.2015, 15:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2015, 15:08
Привет! Вот еще темы с ответами:

Вывод данных по ключевым словам. Android SQLite - Программирование Android
Здравствуйте! Требуется создать приложение, которое бы осуществляло поиск по базе данных и вывод результата. В достаточно большой таблице...

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton? - Программирование Android
Добрый день. Затрудняюсь понять один момент: У меня есть ListView, который заполнен Items. Каждый Item - это свой XML. Пока...

Вывод данных в список Listview - Программирование Android
Код: package com.example.projecta; import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; ...

Вывод из базы данных в ListView через SimpleCursorAdapter - Программирование Android
Доброе время суток. Пишу программу под Андроид в среде Android Studio и возникла проблема с выводом данных в listview через...


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

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

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