Доступ к дочернему виду из списка адаптеров - PullRequest
2 голосов
/ 30 августа 2011

Я пытаюсь выделить элемент в ListView (сенсорный интерфейс).Цель состоит в том, чтобы пользователь прикоснулся к изображению и выбрал элемент в ListView, перемещая его, чтобы он был видимым (он не все отображается на экране одновременно), а затем выделил элемент в ListViewсвязанные с положением на изображении путем изменения цвета фона представления элемента.У меня есть пользовательский ListAdapter с видом для каждого элемента.

Из изображения я могу получить позицию предмета в ListView.Из этого я могу позвонить listView.setSelection(selectedPos).Это позиционирует элемент в верхней части списка.Однако теперь я хочу получить представление об этом элементе;Я попытался getFirstVisiblePosition(), однако, кажется, что это недоступно, пока список не будет выложен (я отвечаю на щелчок по изображению), поэтому я не могу использовать это.все, что я хочу сделать, это сделать что-то вроде listView.getViewAt(index), но я просто не могу найти способ сделать это.Я не могу использовать «выбранный», поскольку я нахожусь в сенсорном режиме.

За то, что кажется очень простой вещью - я потратил впустую день;любая помощь будет принята с благодарностью!

Ура,

Нил

Ответы [ 3 ]

1 голос
/ 31 августа 2011

Разве listView.getChildAt(position) не должен делать то, что вы хотите?

0 голосов
/ 01 сентября 2011

Я обошел это, выполнив следующее:

  • Я пометил элемент, который хотел выбрать сначала в адаптере, добавив свой собственный метод
  • Затем, когда представлениезапрошенный, я могу проверить, является ли представление для позиции, в которой я запросил
  • , я получаю затем изменяю представленное представление, которое возвращается GetView

    Это кажется самым простым вариантом

0 голосов
/ 31 августа 2011

Попробуйте создать свой собственный адаптер для списка.Например:

 private class CustomAdapter extends ArrayAdapter<RowData> {
       public CustomAdapter(Context context, int resource, List<RowData> objects) { 
            super(context, resource, objects);
       }
       @Override
       public View getView(int position, View convertView, ViewGroup parent) { 
            //convertView holds the view for each item.
            TextView txt = (TextView)convertView.findViewById(R.id.button);
            //do some other stuff with the views
            return convertView;
       }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...