android – listview получить просмотр позиции по позиции

У меня есть listview с пользовательским адаптером (базовый адаптер). Я хочу получить представление из списка по позиции. Я попробовал mListView.getChildAt(position) , но он не работает. Как я могу получить просмотр позиции по позиции?

Использовать это :

 public View getViewByPosition(int pos, ListView listView) { final int firstListItemPosition = listView.getFirstVisiblePosition(); final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1; if (pos < firstListItemPosition || pos > lastListItemPosition ) { return listView.getAdapter().getView(pos, null, listView); } else { final int childIndex = pos - firstListItemPosition; return listView.getChildAt(childIndex); } } 

Вы можете получить только видимый вид из ListView, потому что представления строк в ListView повторно используются. Если вы используете mListView.getChildAt(0) вы получаете первое видимое представление. Это представление связано с элементом из адаптера в позиции mListView.getFirstVisiblePosition() .

Предпочтительный способ изменения внешнего вида / любого вида представлений строк после рисования ListView состоит в том, чтобы что-то изменить в элементе данных ListView (массив объектов, передаваемых в ваш адаптер), и не забудьте указать это в вашем getView () , затем перерисуйте ListView, вызвав

 notifyDataSetChanged(); 

РЕДАКТИРОВАТЬ: пока есть способ сделать это, если вам нужно сделать это, что-то не так. В то время как несколько краевых случаев, о которых я могу думать, обычно используют notifyDataSetChanged() и другие встроенные механизмы – это путь.

РЕДАКТИРОВАНИЕ 2: Одна из распространенных ошибок, которые люди делают, пытается придумать свой собственный способ ответить на щелчок пользователя / выбор строки в ListView, как в одном из комментариев к этому сообщению. Существует существующий способ сделать это. Вот как:

 mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { /* Parameters parent: The AdapterView where the click happened. view: The view within the AdapterView that was clicked (this will be a view provided by the adapter) position: The position of the view in the adapter. id: The row id of the item that was clicked. */ @Override public void onItemClick(AdapterView parent, View view, int position, long id) { //your code here } }); 

В ListView есть много встроенных функций, и нет необходимости изобретать колесо для более простых случаев. Поскольку ListView расширяет AdapterView , вы можете установить те же самые Listeners, как OnItemClickListener, как в приведенном выше примере.

 workignHoursListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent,View view, int position, long id) { viewtype yourview=yourListViewId.getChildAt(position).findViewById(R.id.viewid); } }); 
 Listview lv = (ListView) findViewById(R.id.previewlist); final BaseAdapter adapter = new PreviewAdapter(this, name, age); confirm.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub View view = null; String value; for (int i = 0; i < adapter.getCount(); i++) { view = adapter.getView(i, view, lv); Textview et = (TextView) view.findViewById(R.id.passfare); value=et.getText().toString(); Toast.makeText(getApplicationContext(), value, Toast.LENGTH_SHORT).show(); } } }); 
  • Android получает точную позицию прокрутки в ListView
  • Как выделить строку в ListView в Android?
  • Android: доступ к дочерним представлениям из списка ListView
  • Элемент списка избранных элементов Android ListView выделен
  • Использование ListView: как добавить представление заголовка?
  • ListFragment не принимает мой макет
  • Скрытие ActionBar в RecyclerView / ListView onScroll
  • Android - ListView слайд влево / вправо, как и Samsung
  • Есть ли разница между «ListView.invalidateViews ()» и «Adapter.notifyDataSetChanged ()»?
  • Просмотр элементов списка изменений при прокрутке андроида?
  • Программно перейдите к определенной позиции в Android ListView
  • Interesting Posts

    UIImagePickerController в ландшафте

    Кнопка изображения в BlackBerry

    Почему не удается выполнить внутриуровневые тесты кода, чтобы найти ресурсы пакета?

    Динамически найти class, представляющий примитивный тип Java

    Как я могу выполнить эту функцию с помощью VBA в excel?

    Как загрузить ресурс из файла jar, упакованного в военный файл?

    В чем разница между моей и нашей в Perl?

    Как конвертировать отсканированные изображения в PDF в файл PDF с возможностью поиска?

    Windows: «Эта операция была отменена из-за ограничений, действующих на этом компьютере. Пожалуйста, обратитесь к системному администратору."

    NSString (hex) в байтах

    Использовать составной первичный ключ в качестве внешнего ключа

    Как импортировать данные из текстового файла в базу данных mysql

    Android: пользовательский разделитель (или даже элемент) в ListView, зависящий от содержимого элемента

    Как создать программу установки Windows

    Как я могу получить пользовательский ввод в Java?

    Давайте будем гением компьютера.