2014-09-11 3 views
0

Я пытаюсь сгруппировать свои ListView с помощью SimpleAdapter. Я использую два Layouts, r1 и r2. Я сделал следующее кодирование, но я получаю только содержимое макета r2, отображаемое в моем ListView. Может ли кто-нибудь направить меня туда, где я ошибаюсь? Мои коды, как показано ниже:Невозможно установить заголовки в Listview с помощью SimpleAdapter в Android

adapter=new SimpleAdapter(MainActivity.this, arraylist,R.layout.r1,new String[]{"key1","key2"},new int[]{R.id.textView1,R.id.textView2}) 
    { 



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

      LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(MainActivity.this.LAYOUT_INFLATER_SERVICE); 
       int type = getItemViewType(position); 
       Log.i("position + convertview + type ",""+position+","+convertView+","+type); 
       if(convertView==null) 
       { 

        v = inflater.inflate(R.layout.r2, parent, false); 
       } 
       else 
       { 
        v = inflater.inflate(R.layout.r1, parent, false); 
       } 



       return v; 

     } 

    }; 

    l.setAdapter(adapter); 
+0

Я думаю, вам нужно создать свой пользовательский адаптер с помощью реализации getViewtype(). –

+0

Проверьте это: http://android.amberfog.com/?p=296 –

ответ

0

В getView есть

if (type == FIRST_TYPE) { 
     //infalte layout of type1 
}else if(type == SECOND_TYPE){ 
     //infalte layout of type2 
} 

Ваш тип соответствует.

private static final int FIRST_TYPE= 0; 
private static final int SECOND_TYPE = 1; 

У вас может быть заголовок, основанный на позиции.

@Override 
public int getItemViewType(int position) { 

    if (position== 0){ 
     type = FIRST_TYPE; 
    } else if (position == 1){ 
     type = SECOND_TYPE; 
    } 
    return type; 
} 

Вы также можете использовать CommonsWare адаптера Merge

https://github.com/commonsguy/cwac-merge

+0

Что такое FIRST_TYPE и SECOND_TYPE? – 2014-09-11 05:55:14

+0

@Ann 0 соответствует заголовку и 1 соответствует содержимому. Его до вас, чтобы изменить – Raghunandan

+0

Я не могу переопределить getItemViewType – 2014-09-11 05:58:39

0

Судя состояние неправильно

convertView Визитки быть пустым.

вы можете найти android ListView resusing views ListView reusing views when ... I don't want it to например

так что если вы хотите использовать два макет, используйте другие условия судейства.

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