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

получение item View в ListView для заданной позиции

Добавлено: 05 июн 2015, 19:13
slbel
Доброго всем времени суток!

Решил попробовать вместо динамического добавления TextView в вертикальный Layout обернутый в ScrollView использовать ListView. C ним все работает, но есть одна большая проблема - мне нужно изменять динамически значения всех элементов ListView, даже если они не видны (значения обновляются без ввода пользователем). Если выполнить ListView lv.getChildAt(pos) для позиции которая не видна, но я получаю null вместо view :(

Это если следовать посту Zero (в самом конце).
http://stackoverflow.com/questions/1846 ... ot-in-view

Можно наверное как-то извратиться, и сохранять получаемые по интерфейсу значения куда-то в массив, но потом их обновлять в OnScrollListener. Но сильно много работы :(
Много вычислений, ну его нафиг.

Я бы не заморачивался, меня вполне бы устроил вариант и с обычным Layout обернутым в ScrollView, если бы не проблема со сменой ориентации экрана, нужно как-то определить позицию верхнего видимого элемента ScrollView в момент смены экрана, а затем вернуть ее после смены. А ListView как-то автоматически умудряется запоминать (через адаптер, я полагаю), и восстанавливает, даже несмотря на полную его переинициализацию. Списки небольшие (пару-тройку десятков), но все равно неудобно искать вручную.

Будут ли какие дельные предложения, по решению данной проблемы?

Спасибо.

Re: получение item View в ListView для заданной позиции

Добавлено: 05 июн 2015, 23:26
Foenix
классическое изобретение велосипеда...................................................

Re: получение item View в ListView для заданной позиции

Добавлено: 06 июн 2015, 11:05
doter.ua
slbel писал(а):Доброго всем времени суток!

Решил попробовать вместо динамического добавления TextView в вертикальный Layout обернутый в ScrollView использовать ListView. C ним все работает, но есть одна большая проблема - мне нужно изменять динамически значения всех элементов ListView, даже если они не видны (значения обновляются без ввода пользователем). Если выполнить ListView lv.getChildAt(pos) для позиции которая не видна, но я получаю null вместо view :(

Это если следовать посту Zero (в самом конце).
http://stackoverflow.com/questions/1846 ... ot-in-view

Можно наверное как-то извратиться, и сохранять получаемые по интерфейсу значения куда-то в массив, но потом их обновлять в OnScrollListener. Но сильно много работы :(
Много вычислений, ну его нафиг.

Я бы не заморачивался, меня вполне бы устроил вариант и с обычным Layout обернутым в ScrollView, если бы не проблема со сменой ориентации экрана, нужно как-то определить позицию верхнего видимого элемента ScrollView в момент смены экрана, а затем вернуть ее после смены. А ListView как-то автоматически умудряется запоминать (через адаптер, я полагаю), и восстанавливает, даже несмотря на полную его переинициализацию. Списки небольшие (пару-тройку десятков), но все равно неудобно искать вручную.

Будут ли какие дельные предложения, по решению данной проблемы?

Спасибо.
https://eliasbland.wordpress.com/2011/0 ... n-android/

Re: получение item View в ListView для заданной позиции

Добавлено: 07 июн 2015, 21:02
slbel
Foenix писал(а):классическое изобретение велосипеда...................................................
Нет, я не собираюсь изобретать велосипед; просто хочу понять как работать с listview. И кажется нашёл то,что мне нужно, завтра буду пробовать. В google reference об этом особо не распрстраняются. Я раньше обращал внимание на метод getview, но так и не понял его смысла. Об этом можно прочитать здесь:
http://android.amberfog.com/?p=296

Re: получение item View в ListView для заданной позиции

Добавлено: 07 июн 2015, 21:07
slbel
Спасибо, пригодится, если с listview не выйдет достаточно просто.

Re: получение item View в ListView для заданной позиции

Добавлено: 08 июн 2015, 17:00
KamiSempai
Новичок: У меня на велосипеде нет сидения. Ездить попе больно. Поставил на место сидения руль. Вроде норм, но теперь велосипед едет куда сам захочет. ПОМОГИТЕ!!! ЧТО ДЕЛАТЬ???
Профессионал: Вот, держи вазелин, больно не будет.
Новичок: Спасибо. Обязательно попробую, если второй руль не найду.

Re: получение item View в ListView для заданной позиции

Добавлено: 08 июн 2015, 17:13
Mikhail_dev
Из двух вариантов решения, решение новичка куда разумнее, нежели у профессионала

Re: получение item View в ListView для заданной позиции

Добавлено: 09 июн 2015, 10:48
slbel
KamiSempai писал(а):
Новичок: У меня на велосипеде нет сидения. Ездить попе больно. Поставил на место сидения руль. Вроде норм, но теперь велосипед едет куда сам захочет. ПОМОГИТЕ!!! ЧТО ДЕЛАТЬ???
Профессионал: Вот, держи вазелин, больно не будет.
Новичок: Спасибо. Обязательно попробую, если второй руль не найду.
Спасибо, посмеялся.
Все работает, как и задумывалось.