Условие «если» не работает должным образом в BaseAdapter

Мое любимое использование выражений присваивания для лениво инициализированных свойств.

private string _name;
public string Name
{
    get { return _name ?? (_name = ExpensiveNameGeneratorMethod()); }
}
0
задан Andrea 18 January 2019 в 11:27
поделиться

1 ответ

Я нахожу решение, используя ViewHolder :

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        holder = new ViewHolder();
        convertView = LayoutInflater.from(mContext).inflate(R.layout.listview_item, null);
        holder.layoutOperative = convertView.findViewById(R.id.layout_list_item);
        holder.txtOne = convertView.findViewById(R.id.text_one);
        holder.txtTwo = convertView.findViewById(R.id.text_two);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    if (mBuildingsList.get(position).isOperative()) {
        holder.layoutOperative.setBackgroundResource(R.drawable.list_item_background_active);
    } else {
        holder.layoutOperative.setBackgroundResource(R.drawable.list_item_background_inactive);
    }

    holder.txtOne.setText(mList.get(position).getPropertyOne());
    holder.txtTwo.setText(mList.get(position).getPropertyTwo());

    return convertView;

}

Спасибо всем!

0
ответ дан Andrea 18 January 2019 в 11:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: