TreeMap <key,list <string>&gt;列表视图</key,列出<string>

时间:2013-12-12 09:16:16

标签: android list android-listview treemap

我有一个带有键值对的TreeMap,键是一个表示某种类型的String。基于此,我可以添加另外四种类型的属性作为列表。现在,对于&lt; | key |的每个条目,list | string&gt;我想在列表视图中填充一行。我应该制作什么类型的适配器。此外,我必须考虑到我必须覆盖getView()方法,因为我想根据键值显示不同的图片。任何提示或教程?

2 个答案:

答案 0 :(得分:0)

你可以使用简单的基础适配器。在该适配器中,在get view方法中,你可以使用另一个列表适配器来扩充该列表

答案 1 :(得分:0)

您可以轻松使用BaseAdapter。这里的技巧是从指定索引处的映射中获取键值对。这并不困难 - 如果你的地图被排序,你每次都会获得相同的订单。你会有这样的事情:

public class MapAdapter<K, V> extends BaseAdapter {
    Context context;
    Map<K, V> data;

    public MapAdapter(Context _context, Map<K, V> _data) {
        context = _context;
        data = _data;
    }

    public int getCount() { return data.size(); }

    public Object getItem(int position) {
        K key = map.keySet().toArray()[position];
        V value = map.get(key);
        return AbstractMap.SimpleEntry(key, value);
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        AbstractMap.SimpleEntry<K, V> entry = (AbstractMap.SimpleEntry<K, V>)getItem(position);
        K key = entry.getKey();
        V value = entry.getValue();

        MyRowView rowView = (MyRowView)convertView;
        if(rowView == null) {
            rowView = ...    //create your view by inflating or otherwise
        }

        //Now you have the view and details of your key and value - populate the row
        ...

        return rowView;
    }
}