2011-12-09 7 views
1

私はいくつかのボタンとListViewウィジェットでレイアウトを定義しています。また、2つのTextViewを持つListViewの各行にレイアウトxmlが定義されています。私はString[]に3つの項目が入っている形式List<String[]>のデータも持っています。リストビューのデータを、ListViewレイアウトのTextView行の1つに割り当てられたString配列の3つの項目のうちの2つ(Listの各要素に含まれる)から2つ表示したいとします。カスタムレイアウトListViewに配列リストからのデータを取り込む方法

デフォルトのビューの1つを使用してリストビューを取得して、配列内の単一項目の完全なリストを表示し、値の単一の配列に分解し、ArrayAdapter<String>を使用して表示できますが、 ListViewレイアウトで複数の行を処理する方法

大変助けになりますか?

また、元のList<String[]>リストのデータを変更する必要がある場合は、どのようにしてListViewウィジェットを更新できますか?

ありがとうございました。

答えて

1

へのリンクが参考に思う:

class MyAdapter extends ArrayAdapter<String[]>{ 
     public MyAdapter(Context context, int textViewResourceId, ArrayList<String[]> objects) { 
      super(context, textViewResourceId, objects); 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      if(convertView== null) convertView = getLayoutInflater().inflate(R.layout.your_layout, null); 

      String[] strings = getItem(position); 
      TextView line1 = (TextView)convertView.findViewById(R.id.line1); 
      line1.setText(strings[0]) 
      TextView line2 = (TextView)convertView.findViewById(R.id.line2); 
      line2.setText(strings[0]) 
      //... 

      return convertView; 
     } 
    } 

は、あなたのリストを更新するアダプタにnotifyDataSetChanged()メソッドを呼び出すには。

+0

FYI:ほんの数日で3回目ですが、「自分のアダプタを作成する」という質問に答えました:p – Jave

+0

素晴らしい、よかったです。私は言及すべきだったと思う、私はアンドロイドコーディング(そして実際にはjava)にまったく新しいので、私は検索したが、おそらく私は間違ったことを探していた。とにかく、応答する時間をとってくれてありがとう。クイックポイント、ここでは 'return layout'があります。それを' return convertView'に変更する必要がありました。これはうまくいくようです。基礎となるデータが変更されたときに、アクティビティ内の別のボタンからこのビューを更新する方法に関するヒント –

+0

私の答えを編集して、小さなレイアウトの問題を修正しました(私はレイアウトではなく、レイアウトであれば、新しいレイアウトを作成する傾向があります)...) ) – Jave

関連する問題