Возвращая разные взгляды в виде списка

У меня есть собственный просмотр списка и я хочу вернуть / раздуть в зависимости от условия. Я хочу, чтобы строки отображались или не отображались в зависимости от условия.

В getView() у меня есть следующее

if (convertView == null) {

                // Inflate the layout
                LayoutInflater li = getLayoutInflater();
                convertView = li.inflate(
                        R.layout.contactos_list_item, null);

                contactViewHolder = new ContactViewHolder();

                contactViewHolder.imgContact = (ImageView) convertView
                        .findViewById(R.id.flag);
                contactViewHolder.txtViewContactName = (TextView) convertView
                        .findViewById(R.id.txtView_name);
                contactViewHolder.txtViewPhoneNumber = (TextView) convertView
                        .findViewById(R.id.txtview_number);

                convertView.setTag(contactViewHolder);
            } else {
                contactViewHolder = (ContactViewHolder) convertView.getTag();
            }

и я хочу вернуться

if(condition)
{
  return convertView;
}
else
{
   LayoutInflater li = getLayoutInflater();
   convertView=li.inflate(R.layout.row_null,null);
   return convertView;
}

У меня есть соответствующий макет XML, но приложение перестает работать. что я должен изменить так

1 ответ

Решение

Пока вы не раздуваете новый макет в if Бьюсь об заклад, вы получаете исключение NullPointerException, потому что вы можете иметь неправильный макет из механизма утилизации.

Измените свой код следующим образом:

@Override
public View getView(int position, View convertview, ViewGroup parent) {

    LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    if (condition) {
       convertview = inflater.inflate(R.layout.first_layout, null);
       //do your stuff

     } else {
       convertview = inflater.inflate(R.layout.second_layout, null);
       // do your stuff
     }
    return convertview;
}
Другие вопросы по тегам