2016-12-03 4 views
0

Я наследую вид списка с массивом и загружаю новый макет для каждого элемента массива, однако иногда элемент может быть пустым/null, и я не хочу раздувать макет для этого объекта. Есть какой-либо способ сделать это?Отображающий список списка

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    View vi = convertView; 

     if (vi == null) 
      vi = inflater.inflate(R.layout.profile_edit_layout, null); 
     TextView tvName = (TextView) vi.findViewById(R.id.textViewSiteName); 
     tvName.setText(siteNames.get(position)); 

     TextView tvInfo = (TextView) vi.findViewById(R.id.textViewSiteInfo); 
     tvInfo.setText(sites.get(position)); 

     ImageView iv = (ImageView) vi.findViewById(R.id.ivProfilePic); 
     iv.setImageResource(data.get(position)); 

    return vi; 
} 

Скажем, например, сайты (3) являются пустыми или пустыми, а затем не раздувают макет для этого элемента.

+0

, пожалуйста, проверьте это http://stackoverflow.com/questions/24832497/avoid-passing-null-as-the-view-root-need-to-resolve-layout-parameters-on-the-in – Shailesh

+0

Это абсолютно ничего общего с c. –

+0

Вы можете просто удалить нулевые элементы из массива. –

ответ

0

Вы можете выполнять итерацию по массиву с помощью цикла, проверяя нулевые или нулевые значения.

Если sites(3) != null добавить в новый массив и так далее, а затем перейти в новый массив заселяться в ListView

+0

Редактировать: Переоценка, чтобы иметь больше смысла. В основном я хочу иметь кнопку в каждом макете, которая выполняет другую задачу в зависимости от значения сайтов. Как я могу это сделать, так это массив сайтов каждый раз? – lubsey111

+0

Вы будете проверять, что когда-либо значение определяет вашу кнопку. Затем выполните эту конкретную кнопку. 'if (isCool = true) {// добавить эту кнопку} else {// добавить другую кнопку}' – Illdapt

+0

Спасибо, за указатели. Я думаю, что использование setTag, getTag для каждого макета и проверка тега в OnClick лучше всего здесь. Благодарю. – lubsey111

0

что вы можете сделать, это сохранить еще один массив, который будет иметь только один действительный каждый раз данные и отправить этот массив к адаптеру, а чем основной адаптер!

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