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

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

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

Данные из SQlite в ListView, обработка события ListView - Программирование Android

20.02.2016, 16:09. Просмотров 304. Ответов 5
Метки нет (Все метки)

Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД.

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
 mList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                int num;
                userCursor = sqlHelper.database.rawQuery("select * from " + DatabaseHelper.TABLE + " where " +
                        DatabaseHelper.COLUMN_ID + "=?", new String[]{String.valueOf(id)});
 
                
userCursor.moveToPosition(position); 
num = userCursor.getInt(userCursor.getColumnIndex(DatabaseHelper.COLUMN_YEAR)); // В ЭТИХ СТРОКАХ БЕДА
 
 
                String baseUssd = Uri.encode("*") + "697" + Uri.encode("*") + num + Uri.encode("*") + "1"+ Uri.encode("#") ;
                StringBuilder builder = new StringBuilder();
                builder.append(baseUssd);
 
                Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + builder.toString()));
                if (ActivityCompat.checkSelfPermission(UssdMain1Activity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
                    // TODO: Consider calling
                    return;
                }
                startActivity(intent);
 
             
            }
        });
При нажатии на первую строчку ListView запрос вроде бы прошел (на эмуляторе GenyMotion вылезла ошибка Connection problem or invalid MMI code, это кст вопрос №2 - Как проверить работоспособность USSD запросов???)

Но при нажатии на следующие строки вылетает ошибка android.database.CursorIndexOutOfBoundsException: Index 1 requested, with a size of 1.
Вероятно косяк вот в этих строках:
Java
1
2
userCursor.moveToPosition(position); 
num = userCursor.getInt(userCursor.getColumnIndex(DatabaseHelper.COLUMN_YEAR));
Подскажите как по правильному реализовать?)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2016, 16:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Данные из SQlite в ListView, обработка события ListView (Программирование Android):

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

Как записывать данные из SQLite в ListView - Программирование Android
Здравствуйте, задался таким вопросом. Есть SQLite таблица, данные в которой берутся из EditText. Я хочу их записывать их в ListView,...

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

ListView + SQLite - Программирование Android
Привет. Взял код из урока 52 на startandroid, немного его изменил public class DB { private static final String DB_NAME =...

ListView и SQLite - Программирование Android
Пишу первую простенькую игру.Пожалуйста подскажите как решить такую задачу: 1.Есть listview, в котором через simpleCursorAdapter...

Картинка из SQLite в ListView - Программирование Android
Здравствуйте.Есть несколько вопросов. 1 Как отобразить картинки в ListView из SQLite.Если картинки храняться в папке drawable? 2...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
20.02.2016, 21:49 #2
userCursor и так содержит одну запись, удалите userCursor.moveToPosition(position);
1
_bio
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 30
20.02.2016, 22:00  [ТС] #3
Rube, Пробовал без записи, ошибка остается(
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
20.02.2016, 22:14 #4
Log нужен, особенно строка где указана строка ошибки. Оттуда и надо плясать.

Добавлено через 1 минуту
А также проверять на кол-во записей userCursor.
0
_bio
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 30
25.02.2016, 14:07  [ТС] #5
Все верно, лог показал, что в userCursor содержались три записи, трех столбцов.
Решение:
Java
1
2
3
if(userCursor.moveToFirst()){
                    num = userCursor.getInt(userCursor.getColumnIndex(DatabaseHelper.COLUMN_YEAR));
                }
0
alexfoz
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 1
25.02.2016, 17:48 #6
Thanks очень полезная фишка
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2016, 17:48
Привет! Вот еще темы с ответами:

Идентификация ListView + SQLite - Программирование Android
Есть БД sqlite, в ней таблица с полем _id (автоинкримент). ListView заполняю так: fillData(); ContactAdapter = new...

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

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

ListView ячейки, получить Id элемента из SQLite - Программирование Android
есть база данных SQLITE. некоторые элементы БД выводятся в ListView через адаптер и вспомогательный XML. моя задача - в onItemClick перейти...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.02.2016, 17:48
Ответ Создать тему
Опции темы

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