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

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

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

Сообщение powercat » 18 авг 2012, 14:16

Список построен из базы через 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, то как это сделать?

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

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

Сообщение powercat » 20 авг 2012, 09:40

Опять с этим работа встала...что за жопа...(((( даже в поисковик не знаю что вписать для поиска...

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

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

Сообщение neoksi » 20 авг 2012, 11:00

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

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

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

Сообщение powercat » 20 авг 2012, 11:04

да...уже посоветовали учить адаптеры )))

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

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

Сообщение powercat » 20 авг 2012, 11:31

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

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

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

Сообщение powercat » 20 авг 2012, 11:34

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

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

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

Сообщение KamiSempai » 20 авг 2012, 11:40

Вообще-то в переменной arg3 сидит тот самый _ID.
В документации, кстати, об этом явно сказано. ПРУФ
Советую начинать учить "Омериканский", без него в андроиде никуда.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

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

Сообщение powercat » 20 авг 2012, 11:58

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

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

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

Сообщение KamiSempai » 20 авг 2012, 12:51

arg2 - порядковый номер пункта
arg3 - ID из базы.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

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

Сообщение powercat » 20 авг 2012, 13:01

Благодарю, щас попробую

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 20 авг 2012, 14:21

KamiSempai писал(а):arg2 - порядковый номер пункта
arg3 - ID из базы.
arg3 - всегда ноль возвращает =)
R.id.team
Политика на форуме запрещена

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

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

Сообщение KamiSempai » 20 авг 2012, 15:23

rezak90 писал(а):arg3 - всегда ноль возвращает =)
Не может быть такого. Видимо у Вас какой-то неправильный адаптер.
Посмотрите, не переопределяете ли Вы getItemId.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

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

Сообщение powercat » 20 авг 2012, 15:41

ЭЭ....вы меня щас запутаете ))) Разберитесь )))

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 20 авг 2012, 15:44

тьфу, точно, этот метод как то никогда и не нужен был и по этом по дефолту стоит return 0 . Но в любом случае айди нужно будет руками искать.
R.id.team
Политика на форуме запрещена

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

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

Сообщение KamiSempai » 20 авг 2012, 15:55

В данном случае НЕ нужно ни чего искать! SimpleCursorAdapter сам все надет!
arg3 - ID из базы. Точка!

PS: А еще бы лучше переименовать "arg3" в "id". тогда все совсем шикарно будет.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

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

Сообщение rezak90 » 20 авг 2012, 16:02

в общем мы говорим о разных вещах, а автору нужно совсем третье)))) SimpleCursorAdapter понятно что возвращет id переданной ему коллекции/массива и т.д. , я говорил что если писать свой адаптер то и метод getItemId тоже переписывается и скорее всего он будет возвращать data.get(id) (если data является List), ну а автору вообще нужен был id из бд SQLite =)
R.id.team
Политика на форуме запрещена

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

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

Сообщение powercat » 20 авг 2012, 16:14

дада..._id записи, а не списка

AndreyI
Сообщения: 372
Зарегистрирован: 14 май 2012, 16:18

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

Сообщение AndreyI » 20 авг 2012, 16:45

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) {...}

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

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

Сообщение powercat » 22 авг 2012, 09:14

Да, этот аргумент3 - именно то, шо треба )))

Ответить