2015-07-06 3 views
0

Мне нужно, чтобы мой ListView поддерживал разные макеты в зависимости от некоторого состояния, но он не работает, а макет одинаковый в каждой ячейке. Вот часть моего кода, который, к сожалению, не работает:android - несколько макетов в ячейках в списках

public class CustomAdapter extends ArrayAdapter<String> { 

    private final Activity context; 
    private final String[] sSecondStartTimeArray; 
    private final String[] sSecondEndTimeArray; 
    private final String[] sSecondTitleArray; 
    private final String AllData2; 
    public CustomAdapter(Activity context, 
         String[] sSecondStartTimeArray, String[] sSecondEndTimeArray, String[] sSecondTitleArray, String AllData2) { 
     super(context, R.layout.relcell2main, sSecondStartTimeArray); 
     this.context = context; 
     this.sSecondStartTimeArray = sSecondStartTimeArray; 
     this.sSecondEndTimeArray = sSecondEndTimeArray; 
     this.sSecondTitleArray = sSecondTitleArray; 
     this.AllData2 = AllData2; 
    } 

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

     if (convertView == null) { 
      LayoutInflater inflater = context.getLayoutInflater(); 
      int resource; 
      switch (HTTPRequestSecond.GetSecondType(AllData2, position)) { 
       case "rest": 
        resource = R.layout.relcell2second; 
        break; 
       default: 
        resource = R.layout.relcell2main; 
        break; 
      } 
      convertView = inflater.inflate(resource, parent, false); 
     } 
     //some code (it's now working properly even without this part) 
     return convertView; 
    } 

Результат «отдыха» существует, я проверил. Но не работает.

+0

Любые ошибки? Это может быть связано с вашим методом 'inflater.inflate', он выдает' InflateException', если это ошибка. –

+0

@ ErickFilho нет ошибок, только один и тот же макет везде :( –

+0

Показано только 'relcell2main' –

ответ

0

Попробуйте использовать getItemViewType(). Объяснение here и учебное пособие here.

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