【发布时间】:2011-02-04 17:57:28
【问题描述】:
我有两个数组(实际上是一个,但我为每列创建了两个)。我想用列表视图的值填充哈希图,但列表视图的所有元素都是数组的最后一个元素:
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map = new HashMap<String, String>();
for (int i=0; i<13; i++)
{
map.put("left1", date[i]);
map.put("right1", name[i]);
mylist.add(map);
}
SimpleAdapter simpleAdapter = new SimpleAdapter(this, mylist, R.layout.row,
new String[] {"left1", "right1"}, new int[] {R.id.left, R.id.right});
lv1.setAdapter(simpleAdapter);
有什么想法吗? 谢谢
【问题讨论】:
-
你应该考虑只使用接口来声明你的变量,而不是把它限制在具体的实现中。 'List
-
其实应该是
List<? extends Map<String,String>> myList(和Map<String,String> map)。但是,有一个论点是,每个变量都应该声明为它已知的最具体的类型。在该标准下,声明是好的,因为它们是函数的本地声明。 (作为参数,同样的标准规定它们应该被声明为最通用的类型,因为这就是关于它们的全部假设。)此外,这样它可以节省一两个导入。 :)