如何将一些静态数据显示到可扩展列表视图中



我正在尝试在可扩展列表视图中显示一些数据。

对于第一位置,请说

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个文本视图中。
正因为如此,我必须制作一个 ArrayAdapter 来滚动 2 次

还有其他更好的选择吗?

没有预定义的适配器可以呈现哈希映射 您可以通过扩展 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。

在这里,您可以了解如何在 ExpandableListAdapter 中使用 HashMap。您可以从 Constructor 传递 HashMap 并在 Adapter 中使用它。

最新更新