6

ExpandableListViewを使用してを作成しようとしていますSimpleExpandableListAdapter(自分で新しいアダプターを拡張できることはわかっていますが、simpleExapndableListAdapter を試してみたいと思います)。

の新しいインスタンスを作成しようとすると、問題が発生しますSimpleExpandableListAdapter

参考文献を読んだイベント、特にgroupDataとのパラメータが何を意味するのか正確にはわかりませんchildData

Mapのリストと のリストを作成する必要があることはわかっていますがlist of Map、そこにどのデータを配置する必要がありますか? それらを整理する方法は?

例えばこんなデータを表示したいのですが、どう整理すればいいですか?

++Development Team
  John
  Bill
++Data Process Team
  Alice
  David

ところで、グループ ビューと子ビュー用に 2 つのレイアウトを作成する必要があるということですか?

グーグルでチュートリアルを何度も読みましたが、理解できません。

誰かが説明してくれることを願っています。

4

3 に答える 3

7

ここにあなたが望んでいた簡単なサンプルがあります.

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.ExpandableListActivity;
import android.os.Bundle;
import android.widget.ExpandableListAdapter;
import android.widget.SimpleExpandableListAdapter;

public class SimpleExpandableListExampleActivity extends ExpandableListActivity {
    private static final String NAME = "NAME";

    private ExpandableListAdapter mAdapter;

    private String group[] = {"Development" , "Data Process Team"};
    private String[][] child = { { "John", "Bill" }, { "Alice", "David" } };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
        List<List<Map<String, String>>> childData = new ArrayList<List<Map<String, String>>>();
        for (int i = 0; i < group.length; i++) {
            Map<String, String> curGroupMap = new HashMap<String, String>();
            groupData.add(curGroupMap);
            curGroupMap.put(NAME, group[i]);

            List<Map<String, String>> children = new ArrayList<Map<String, String>>();
            for (int j = 0; j < child[i].length; j++) {
                Map<String, String> curChildMap = new HashMap<String, String>();
                children.add(curChildMap);
                curChildMap.put(NAME, child[i][j]);
            }
            childData.add(children);
        }

        // Set up our adapter
        mAdapter = new SimpleExpandableListAdapter(this, groupData,
                android.R.layout.simple_expandable_list_item_1,
                new String[] { NAME }, new int[] { android.R.id.text1 },
                childData, android.R.layout.simple_expandable_list_item_2,
                new String[] { NAME }, new int[] { android.R.id.text1 });
        setListAdapter(mAdapter);
    }

}

あなたがしなければならないのは

  • SimpleExpandableListExampleActivityメイン アクティビティとしてAndroid プロジェクトを作成します。
  • そのアクティビティで指定されたコードをコピーして貼り付けます。
  • それだけです..コードを実行してください...

お役に立てれば...

于 2013-08-21T07:40:39.850 に答える
0

あなたの要件には文字通り非常に多くの例があります!

いずれにせよ、まだこのブログを調べていない場合は、このブログを調べることをお勧めします。

http://www.coderzheaven.com/2011/04/10/expandable-listview-in-android-using-simpleexpandablelistadapter-a-simple-example/

「グループ ビューと子ビュー用に 2 つのレイアウトを作成する必要があるということですか?」

もちろんはい!、レイアウトを作成しないことを選択できることを意味しますが、それはあなたの選択であり、これは ExpandableList とはほとんど関係ありません

GroupList には、理想的にはチームのリストが含まれます List = {"Development Team", "Data Process Team"} (これは主に、リストの高さの計算などの表示目的でのみ使用されます)。

ChildList には、理想的にはリストのリストが含まれます (リストのハッシュマップではなく)

ハッシュマップ> =

開発チーム: List = {"John", "Bill"} データ処理チーム: List = {"John", "Bill"}

于 2013-08-21T07:26:38.067 に答える
0

2 つのリストまたは配列が必要になります。

(開発チームとデータ プロセス チーム)

親リストは通常​​のものです。すべての親、つまり最上位の項目を追加する必要があります。

子供の

親リストと子リストの主な違いは、子リストがリストのリストであることです。

たとえば、親の子が必要な場合は、次のようにします

children.get(parentPosition)

特定の子供が必要な場合

children.get(parentPosition).get(childPosition)

ここでは、使用例を見つけることができますBaseExpandableListAdapter

于 2013-08-21T07:26:42.490 に答える