Как получить представление, которое находится внутри сложного представления строки ListView? - PullRequest
1 голос
/ 18 ноября 2011

У меня есть ListView, который был заполнен строками, содержащими данные с использованием адаптера.Макет строки имеет тип «RelativeLayout» и содержит различные объекты представления, идентификатор одного из них - «@ + id / bar_fill».

У меня есть цикл, работающий над всеми дочерними элементами ListView, иЯ хочу "получить" элемент представления, о котором я упоминал выше.

Код, который я использую:

ListView list = getListView();
int count = list.getCount();
for (int i = 0; i < count; i++) 
{
   RelativeLayout row = (RelativeLayout) list.getChildAt(i);
   View bar = row.findViewById(R.id.bar_fill);         
}

Однако, когда он достигает последней строки, он падает.Когда я закомментировал это и сделал

System.out.println(findViewById(R.id.bar_fill));

Он вернул нули.

Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 18 ноября 2011

Переопределите эту функцию в пользовательском адаптере.

public View getView(int position, View convertView, ViewGroup parent);
View v = convertView;
    if (v == null) {
        LayoutInflater vi = (LayoutInflater) c
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = vi.inflate(id, null);
    }

Теперь, как если вы хотите определенный текстовый элемент из элемента строки списка, сделайте это так:

TextView t1 = (TextView) v.findViewById(com.pis.prototype.R.id.TextView01);

t1 - ваш требуемый вид сейчас ...: P

0 голосов
/ 18 ноября 2011

И если вы хотите получить уже обновленные / созданные элементы в виде списка и хотите получить представление из некоторой строки.Затем сделайте это следующим образом:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...