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

Получить _ID удаляемого пункта списка.

Добавлено: 18 авг 2012, 14:16
powercat
Список построен из базы через SimpleCursorAdapter.
Пункт списка удаляется из базы при выборе п.Удалить из контектстного меню. Конструкция такая, все работает:

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

				db = SQLiteDatabase.openDatabase(pathToDB, null, SQLiteDatabase.OPEN_READWRITE);
				AdapterContextMenuInfo adapterContextMenuInfo=(AdapterContextMenuInfo)item.getMenuInfo();//Получение данных по пункту нажатого в списке
				db.delete("mainTable","_id = "+adapterContextMenuInfo.id,null);
				db.close();
Хочу сделать аналогично, но для простого нажатия на пункт списка... открыть ДругуюАктивити и передать ей _ID записи (НЕ ПУНКТА СПИСКА ПОЗИЦИЮ, а ЗАПИСИ в базе) для обработки.
Вопрос - как сделать это не для контекстного меню, а для простого нажатия на пункт списка через это:

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

		lvМойСписок.setOnItemClickListener(new OnItemClickListener() {

			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
				long itemId;     _ID записи для передачи ДругойАктивити
				intent=new Intent(Activity_ЭтаАктивити.this,Activity_ДругаяАктивити.class);
				intent.putExtra("CATCH_itemId", itemId);     Тут надо ДругойАктивити передать _ID записи, которую буду обрабатывать		
				startActivity(intent);
			}
		});
Если через это невозможно определить этот _ID, то как это сделать?

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 09:40
powercat
Опять с этим работа встала...что за жопа...(((( даже в поисковик не знаю что вписать для поиска...

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 11:00
neoksi
powercat писал(а):Опять с этим работа встала...что за жопа...(((( даже в поисковик не знаю что вписать для поиска...
Могу только посоветовать почитать в SDK исходники SimpleCursorAdapter.java и CursorAdapter.java. Думаю прочитав их, ты сможешь найти ответ, как получить нужные данные.

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 11:04
powercat
да...уже посоветовали учить адаптеры )))

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 11:31
powercat
мда...на этом работа закончена на неопределнный период, т.к. без этого говна (адаптера), дальше не двинуться. А информации детальной, что это и что с этим делать нет, есть только локальные прикладные примеры...Дал бы я в морду создателю этого уродства...

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 11:34
powercat
Готов заплатить за решение данной задачи: как передать в интенте _ID записи базы, относящейся к пункту списка, на который я просто кликнул, без вызова контекстного меню.

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 11:40
KamiSempai
Вообще-то в переменной arg3 сидит тот самый _ID.
В документации, кстати, об этом явно сказано. ПРУФ
Советую начинать учить "Омериканский", без него в андроиде никуда.

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 11:58
powercat
Да я все понимаю...но это НАДОЛГО, а программа требуется щаЗЗ прямо )))
Напишу и пойду на курсы явы, и потом андроида...
В аргументе чего сидит айди пункта или записи в базе? В adapterContextMenuInfo - возможно, но у меня ПРОСТОЙ клик, а не контекстный. А вот если в просто клике сидит, то это уже лучше. Осталось получить что-то типа adapterПРОСТОMenuInfo

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 12:51
KamiSempai
arg2 - порядковый номер пункта
arg3 - ID из базы.

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 13:01
powercat
Благодарю, щас попробую

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 14:21
rezak90
KamiSempai писал(а):arg2 - порядковый номер пункта
arg3 - ID из базы.
arg3 - всегда ноль возвращает =)

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 15:23
KamiSempai
rezak90 писал(а):arg3 - всегда ноль возвращает =)
Не может быть такого. Видимо у Вас какой-то неправильный адаптер.
Посмотрите, не переопределяете ли Вы getItemId.

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 15:41
powercat
ЭЭ....вы меня щас запутаете ))) Разберитесь )))

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 15:44
rezak90
тьфу, точно, этот метод как то никогда и не нужен был и по этом по дефолту стоит return 0 . Но в любом случае айди нужно будет руками искать.

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 15:55
KamiSempai
В данном случае НЕ нужно ни чего искать! SimpleCursorAdapter сам все надет!
arg3 - ID из базы. Точка!

PS: А еще бы лучше переименовать "arg3" в "id". тогда все совсем шикарно будет.

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 16:02
rezak90
в общем мы говорим о разных вещах, а автору нужно совсем третье)))) SimpleCursorAdapter понятно что возвращет id переданной ему коллекции/массива и т.д. , я говорил что если писать свой адаптер то и метод getItemId тоже переписывается и скорее всего он будет возвращать data.get(id) (если data является List), ну а автору вообще нужен был id из бд SQLite =)

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 16:14
powercat
дада..._id записи, а не списка

Re: Получить _ID удаляемого пункта списка.

Добавлено: 20 авг 2012, 16:45
AndreyI
rezak90 писал(а):в общем мы говорим о разных вещах, а автору нужно совсем третье)))) SimpleCursorAdapter понятно что возвращет id переданной ему коллекции/массива и т.д. , я говорил что если писать свой адаптер то и метод getItemId тоже переписывается и скорее всего он будет возвращать data.get(id) (если data является List), ну а автору вообще нужен был id из бд SQLite =)
В SimpleCursorAdapter передается Cursor и все данные для ListView берутся из него в т.ч. и _id из базы и arg3 это именно он.
Кстати, у меня он в шаблоне метода тоже показывается как long id
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {...}

Re: Получить _ID удаляемого пункта списка.

Добавлено: 22 авг 2012, 09:14
powercat
Да, этот аргумент3 - именно то, шо треба )))