Страница 1 из 1

Получение значения Spinner

Добавлено: 03 ноя 2013, 23:18
Максим Янчий
При попытке получить значение spinner и завести в editText, появляется неизвестный текст
android.database.sqlite.SQLiteCursor@42168720.
Получаю значение так:
String rv = spinner.getSelectedItem().toString;
editText2.setText(rv);
Данные для Spinner беру из базы данных.
В чем может быть проблема?
Заранее спасибо за ответ!

Re: Получение значения Spinner

Добавлено: 04 ноя 2013, 00:13
rezak90
потому что getSelectedItem возвращает Object, тебе нужно вытаскивать с адаптера (переопределив метод getItem) или же вызвать метод getSelectedItemPosition или getSelectedItemId у Spinner получив позицию или id соответственно и потом по ним ты можешь вытянуть данные из адаптера/бд.

Re: Получение значения Spinner

Добавлено: 04 ноя 2013, 09:13
Максим Янчий
rezak90 писал(а):потому что getSelectedItem возвращает Object, тебе нужно вытаскивать с адаптера (переопределив метод getItem) или же вызвать метод getSelectedItemPosition или getSelectedItemId у Spinner получив позицию или id соответственно и потом по ним ты можешь вытянуть данные из адаптера/бд.
А как вытянуть данные из БД зная позицию?
Заранее спасибо за ответ!

Re: Получение значения Spinner

Добавлено: 04 ноя 2013, 11:07
rezak90
SELECT * FROM table_name WHERE _id = 10

Re: Получение значения Spinner

Добавлено: 04 ноя 2013, 13:31
Foenix
Максим Янчий писал(а):
rezak90 писал(а):потому что getSelectedItem возвращает Object, тебе нужно вытаскивать с адаптера (переопределив метод getItem) или же вызвать метод getSelectedItemPosition или getSelectedItemId у Spinner получив позицию или id соответственно и потом по ним ты можешь вытянуть данные из адаптера/бд.
А как вытянуть данные из БД зная позицию?
Заранее спасибо за ответ!
ой-ой, смотря какие данные и зная какую позицию. Иной раз в базу лезть не нужно ,просто данные взять из того же самого курсора, по которому ты строил Spinner

Re: Получение значения Spinner

Добавлено: 04 ноя 2013, 21:21
Максим Янчий
rezak90 писал(а):SELECT * FROM table_name WHERE _id = 10
Спасибо большое!

Re: Получение значения Spinner

Добавлено: 04 ноя 2013, 21:22
Максим Янчий
Foenix писал(а):
Максим Янчий писал(а):
rezak90 писал(а):потому что getSelectedItem возвращает Object, тебе нужно вытаскивать с адаптера (переопределив метод getItem) или же вызвать метод getSelectedItemPosition или getSelectedItemId у Spinner получив позицию или id соответственно и потом по ним ты можешь вытянуть данные из адаптера/бд.
А как вытянуть данные из БД зная позицию?
Заранее спасибо за ответ!
ой-ой, смотря какие данные и зная какую позицию. Иной раз в базу лезть не нужно ,просто данные взять из того же самого курсора, по которому ты строил Spinner
Спасибо большое!

Re: Получение значения Spinner

Добавлено: 04 ноя 2013, 22:22
Foenix
очень просто
нужно организовать цикл по записям курсора, и в цикле сравнивать значение поля с нужным id. Если нашли - то бинго.

Код: Выделить всё

if (c.moveToFirst()) {
					while (!c.isAfterLast()) {
						if (c.getLong(c.getColumnIndex("_id")) == НУЖНЫЙ ID) {
							//делаем что нужно
							break;
						}
						c.moveToNext();
					}
				}

Re: Получение значения Spinner

Добавлено: 04 ноя 2013, 23:09
rezak90
ой Инна, ой как не стыдно предлагать такое? А если в курсоре сотня тысяч записей?!? Что, по всем будешь пробегаться? (смотри на мою аватарку ;) )
У курсора есть метод moveToPosition, позицию берём со спинера, перемещаем курсор в нужную позицию и достаём все нужные значения.

Re: Получение значения Spinner

Добавлено: 05 ноя 2013, 12:39
Foenix
вообще-то речь про id шла, это раз, во вторых, ты пробовал запихивать в спиннер столько тыщ записей, о которых говоришь?

ах да, вопрошающий стер свой вопрос, а я его не процитировала, поэтому так как ты не знаешь, что именно спросили, то я тебя прощаю за твое нелепое замечание.

Re: Получение значения Spinner

Добавлено: 05 ноя 2013, 12:43
rezak90
Foenix писал(а):вообще-то речь про id шла, это раз, во вторых, ты пробовал запихивать в спиннер столько тыщ записей, о которых говоришь?

ах да, вопрошающий стер свой вопрос, а я его не процитировала, поэтому так как ты не знаешь, что именно спросили, то я тебя прощаю за твое нелепое замечание.
и я тебя прощаю, но всегда буду помнить ;)

Re: Получение значения Spinner

Добавлено: 05 ноя 2013, 12:45
Foenix
опять тебя и тут и там передают.. :-D