2011-12-29 2 views
0

나는 각각의 아이템을 서로 다른 시각을 가질 필요가있는 상황으로 도왔다. ListView. 예를 들어, 첫 번째 항목은 TextViewImageView 일 수 있으며 두 번째 항목은 ButtonTextView 일 수 있습니다.
처음에는 항목 어댑터에 중첩 된 테이블 레이아웃을 사용했지만 작동하지 않았습니다.런타임시 ListView에 대해 다른보기를 추가 할 수 있습니까?

public View getView(int position, View convertView, ViewGroup parent) { 
     ItemViewHolder holder; 
     LayoutInflater inflater = context.getLayoutInflater(); 
     if (convertView == null) { 
      convertView = inflater.inflate(R.layout.user_activity_item, null); 
      holder = new ItemViewHolder(); 
      holder.textViewText = (TextView) convertView.findViewById(R.id.user_activity_item_xml_textview_user_name); 
      holder.textViewText2 = (TextView) convertView.findViewById(R.id.user_activity_item_xml_textview_user_where); 
      holder.table = (TableLayout) convertView.findViewById(R.id.user_activity_item_xml_tablelayout_activity_table); 
      convertView.setTag(holder); 
     } 
     else { 
      holder = (ItemViewHolder) convertView.getTag(); 
     } 

     holder.textViewText.setText(items.get(position)); 
     holder.textViewText2.setText(items.get(position)); 

     // add a new row 
     TableRow row = new TableRow(context); 
     row.setLayoutParams(new android.widget.TableRow.LayoutParams(android.widget.TableRow.LayoutParams.FILL_PARENT, android.widget.TableRow.LayoutParams.WRAP_CONTENT)); 
     ImageView i = new ImageView(context); 
     TextView t = new TextView(context); 
     t.setText("Some texts"); 
     row.addView(i); 
     row.addView(t); 
     holder.table.addView(row, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
     return convertView; 
    } 

목록이로드 될 때마다 표가 그에 따라 수정됩니다. 따라서 항목 수가 계속 증가합니다. 그래서 제 질문은이 상황을 처리 할 수있는 방법이 있습니까? 런타임시 각 항목에 다른 위젯을 추가 할 수있는 동적 인 ListView을 만들려면 어떻게해야합니까? 어떤 제안이라도 대단히 감사하겠습니다.

답변

2

메서드의 시작 부분에 convertView = null을 설정하십시오. 그것은 효과가있을 것이다.

+0

완벽하게 작동합니다. 많은 감사;). – Chan

관련 문제