如何将一些静态数据显示到ExpandableListView中

时间:2014-02-12 11:49:27

标签: java android arrays hashmap

我正在尝试在ExpandableListView中显示一些数据。

对于第一个位置,请说

name  roll  mark 
a     10    50
b     11   55
c     12   56

第二次

name  roll  mark 
a     7     5
b     5     5
c     3     5

我为每个字段(名称,标记,标记)创建了一个ArrayAdapter,并在3个TextView中显示。
因此,我必须制作一个用于滚动2次的ArrayAdapter

还有其他更好的选择吗?

1 个答案:

答案 0 :(得分:0)

没有预定义的适配器将呈现HashMap您可以通过扩展ArrayAdapter来创建自定义适配器。

以下是自定义适配器中HashMap的示例:

public class HashMapAdapter extends BaseAdapter {

    private HashMap<String, String> mData = new HashMap<String, String>();
    private String[] mKeys;
    public HashMapAdapter(HashMap<String, String> data){
        mData  = data;
        mKeys = mData.keySet().toArray(new String[data.size()]);
    }

    @Override
    public int getCount() {
        return mData.size();
    }

    @Override
    public Object getItem(int position) {
        return mData.get(mKeys[position]);
    }

    @Override
    public long getItemId(int arg0) {
        return arg0;
    }

    @Override
    public View getView(int pos, View convertView, ViewGroup parent) {
        String key = mKeys[pos];
        String Value = getItem(pos).toString();

        //do your view stuff here

        return convertView;
    }
}

如果你想要切换效果,你可以使用ExpandableListAdapter代替简单的ArrayAdapter。

here您可以在ExpandableListAdapter中找到如何使用HashMap。您可以从Constructor传递HashMap并在Adapter中使用它。