2011-01-03 14 views
0

私は展開可能なリストビューを持っています。それは4セクションを持っています。 最初の2つのセクションでは、テキストを表示します。 第3のものでは画像を表示したいが、第4の画像ではビデオを表示したい。簡潔に言えば、すべての親は別の子を持っています。 これをAndroidで展開可能なリストに実装するにはどうすればよいですか?あなたは項目がであるもののグループに応じて、意見の異なる種類を返すExpandableListAdapterを使用する必要がアンドロイドで展開可能なリストビューの各セクションに異なる子供を追加するにはどうすればよいですか?

おかげで、 ネハ

答えて

1

だからあなたのリストアダプタであなたは

getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) 
を上書き

など、グループに応じて何かを実行します。たとえば、

getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { 
if (groupPosition == 0) return text views for this child 
if (groupPositon == 1) return image views for this child 
} 

これはあなたの仕事を始めるはずです。そこからはかなり簡単です。

+0

おかげで、私はこれを試してみるよ:) monkjackおよびuはお知らせいたします。 – Neha

+0

こんにちはモンクジャック、私は言った道を試みたが、それぞれの子供は私にテキストビューとイメージの両方を表示しているのに対し、私は条件1でテキストを第1と第2セクションにのみ表示し残りの2つにイメージを表示したい。あなたは私を助けることができますか?私がどこに間違っているのかを教えてください。私はスペースが少ないので私の完全なソースコードを投稿することができないので、私はソースコードを投稿する別の質問を投稿しています。あなたはそれを見て何がうまくいかないのかを教えてくれるでしょうか? – Neha

+0

は、問題を解決しました..それはちょうど "完璧ではない" if - elseロジック..のようです。 – Ewoks

0

CursorTreeAdapterを拡張してExpandableListAdapterを作成する場合は、newChildView()でさまざまなタイプのビューを作成し、bindChildView()でそれらをバインドするように管理する必要があります。カーソル内のデータを使用して、異なるケースを区別することができます。

例コード

@Override 
    protected View newChildView(
     Context context, 
     Cursor cursor, 
     boolean isLastChild, 
     ViewGroup parent) 
    { 
     LayoutInflater mInflater = LayoutInflater.from(context); 
     String firstColumnName = cursor.getColumnName(0); 
     if(firstColumnName.equals("_id")) { 
      return mInflater.inflate(R.layout.main_list_item, parent, false);     
     } else if(firstColumnName.equals("name")){ 
      return mInflater.inflate(R.layout.search_list_item, parent, false);     
     } else { 
      throw new IllegalArgumentException("Unknown firstColumnName:" 
       + firstColumnName); 
     } 
    } 

    @Override 
    protected void bindChildView(
     View view, 
     Context context, 
     Cursor cursor, 
     boolean isLastChild) 
    { 
     String firstColumnName = cursor.getColumnName(0); 
     if(firstColumnName.equals("_id")) { 
      bindMainView(view, context, cursor, isLastChild); 
     } else if(firstColumnName.equals("name")){ 
      bindSearchView(view, context, cursor, isLastChild); 
     } else { 
      throw new IllegalArgumentException("Unknown firstColumnName:" 
       + firstColumnName); 
     } 
    } 
関連する問題