2011-12-29 5 views
0

私はListViewの各項目を異なる視点にする必要がある状況に遭遇しました。たとえば、 の最初の項目はTextViewImageViewの2つ目の項目は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

関連する問題