我正在尝试在可扩展列表视图中显示一些数据。
对于第一位置,请说
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 中使用它。