2016-05-10 2 views
0

Я расширяю Android BaseAdapter.Android BaseAdapter.getView recycling view

В отношении к методу

getView (int position, View convertView, ViewGroup parent) 

документы говорят

Вы должны проверить, что эта точка зрения не является недействительным и соответствующего типа перед использованием. Если невозможно преобразовать это представление, чтобы отобразить правильные данные, этот метод может создать новое представление.

Мне интересно, как проверить, соответствует ли Вид соответствующего типа?

Допустим, я ожидал бы LinearLayout с двумя детьми TextView? Как я могу проверить это правильно?

Это будет правильно?

если (convertView InstanceOf LinearLayout) {

if (convertView.findViewById(someid) != null) { 
//its what I expect... 
} 

}

+0

Если у вас есть более чем 1 вид, вы можете использовать держатель. Проверьте это [Ответ] (http://stackoverflow.com/a/19289890/5573623). –

ответ

1

Если у вас есть только тип 1 вид в адаптере, то вам нужно только, чтобы проверить, если он не является нулевым.

Проверка типов просмотров применяется только в том случае, если у вас есть несколько типов просмотров (когда вы переопределяете getViewTypeCount(), чтобы возвращать что-либо, отличное от 1), то вам нужно выяснить, какой тип он основан на позиции. В принципе, если вы не переопределяете getViewTypeCount(), просто проверьте значение null.

0

Создание класс ViewHolder был бы целесообразен, если у вас есть несколько видов, это может помочь вам с получением вида на макете во время выполнения, как вы используете держатель с каждым видом

Смежные вопросы