Страница 1 из 1
Определить id edittext'a по клику
Добавлено: 15 апр 2013, 07:26
Opaaa
Программным путем создаются edittext'ы, которые засовываются в tablerow (3 вряд-строка одной записи в таблице),их количество зависит от количества записей в бд, как определить id edit'a или tablerow'a, по которому осуществили клик?
Очень дико извиняюсь, если вопрос уже был, сижу с телефона связь периодически пропадает и нет возможности заниматься поисками аналогичных задач)заранее благодарен)
Re: Определить id edittext'a по клику
Добавлено: 15 апр 2013, 09:50
rezak90
Вы когда создаёте edittext'ы делайте им setId(id) что бы потом знать айди по клацнувшому элементу
Re: Определить id edittext'a по клику
Добавлено: 15 апр 2013, 10:10
Opaaa
rezak90 писал(а):Вы когда создаёте edittext'ы делайте им setId(id) что бы потом знать айди по клацнувшому элементу
Это я знаю и делаю) я немного не пойму как реализовать обработку нажатия...клик для любой ячейки(edittext) так называемой таблицы)
Re: Определить id edittext'a по клику
Добавлено: 15 апр 2013, 12:38
rezak90
OnClickListener ?!?
Re: Определить id edittext'a по клику
Добавлено: 15 апр 2013, 16:16
Opaaa
Что чего и где писать не пойму...думал id отловить в событии onclick(view v)? Или я путаю чего?
Re: Определить id edittext'a по клику
Добавлено: 15 апр 2013, 21:02
rezak90
думал id отловить в событии onclick(view v)?
конечно, там и нужно ловить айди
Re: Определить id edittext'a по клику
Добавлено: 16 апр 2013, 03:25
Opaaa
rezak90 писал(а):думал id отловить в событии onclick(view v)?
конечно, там и нужно ловить айди
Дело в том, что ни на одной ячейке не срабатывает это событие...кнопка на форме, которая изначально на форме отрабатывает..а эти не хотят)
Re: Определить id edittext'a по клику
Добавлено: 16 апр 2013, 03:57
neoksi
Вешайте обработчик нажатия во время создания EditText, через setOnClickListener. И не нужно будет мучиться с их ID.
Re: Определить id edittext'a по клику
Добавлено: 16 апр 2013, 06:11
Opaaa
neoksi писал(а):Вешайте обработчик нажатия во время создания EditText, через setOnClickListener. И не нужно будет мучиться с их ID.
Самое интересное, что и это я делал))
Сбило с толку то, что я думал, что одного клика по эдиту достаточно, а онклик в нем срабатывает по второму)) или так только у меня?)))
Id мне все равно нужен, как-то же необходимо сопоставлять записи в бд и записи в эдитах)
Re: Определить id edittext'a по клику
Добавлено: 16 апр 2013, 06:50
neoksi
Не совсем понял. Вы имеете ввиду, что при первом нажатии не срабатывает онклик? Возможно срабатывает онфокус?
Вообще, я лично обхожусь без Id в динамически генерируемых визуальных объектах. Просто создаю свой класс в котором храню все нужные данные и уже к нему привязываюсь отображаемые элементы.
Re: Определить id edittext'a по клику
Добавлено: 16 апр 2013, 07:29
Opaaa
neoksi писал(а):Не совсем понял. Вы имеете ввиду, что при первом нажатии не срабатывает онклик? Возможно срабатывает онфокус?
Вообще, я лично обхожусь без Id в динамически генерируемых визуальных объектах. Просто создаю свой класс в котором храню все нужные данные и уже к нему привязываюсь отображаемые элементы.
Скорей всего так и происходит, хотя логично, что клик по объекту происходит...и вроде бы событие должно произойти...
А можно кусочек примера, как вы это делаете?
Re: Определить id edittext'a по клику
Добавлено: 16 апр 2013, 20:26
neoksi
Кусочком кода тут не обойтись и реализация тут может быть разной, могу описать логику:
1) Получаю данные в курсор из БД.
2) На каждую запись в курсоре создаю объект Item, в который помещаю данные из записи курсора и добавляю к примеру реализации интерфейсов онКлик или иные методы для отображения. Тобишь этот объект Item в себе содержит наиболее полную информацию о данных и что с ним можно делать, к примеру как именно для него обрабатывать onClick.
3) Скармливаю эти Item собственным реализациям List, который отвечает за упорядочивание и взаимодействие адаптера с содержащимися в нем Item.
4) List скармливаю адаптеру и теперь при внесении изменений в List, к примеру добавление элемента, адаптер получит сообщение о том, что необходимо перерисовать и т.д.
5) Адаптер привязываю к элементу, который будет отображать мои данные, к примеру ListView, а также устанавливаю его в нем отвечающим за нажатия.
В общем, это как-то так выглядит, кажется много кода, но использовать удобно)