2014-09-11 2 views
0

SimpleAdapter을 사용하여 내 ListView 항목을 그룹화하려고합니다. 두 개의 Layouts, r1 및 r2를 사용하고 있습니다. 다음 코드를 작성했지만 레이아웃의 내용 만 ListView에 표시됩니다. r2. 내가 잘못 가고있는 곳이면 누구라도 나를 안내 할 수 있습니까? 내 코드는 다음과 같습니다 : getView에서안드로이드에서 SimpleAdapter를 사용하여 Listview에서 머리글을 설정할 수 없습니다.

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

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 병합 어댑터

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

+0

여기에 FIRST_TYPE 및 SECOND_TYPE은 무엇입니까? –

+0

@Ann 0은 헤더에 해당하고 1은 내용에 해당합니다. 최대 개까지 – Raghunandan

+0

getItemViewType을 오버라이드 할 수 없습니다. –

0

에게 심사 조건을 사용할 수있는 것은

convertView의가는 요리가 null가 잘못된 것입니다.

당신은 당신이 두 개의 레이아웃을 사용하려면 android ListView resusing viewsListView reusing views when ... I don't want it to

그래서, 다른 심사 조건을 사용 예컨대 검색 할 수 있습니다.

관련 문제