cannot be converted to List> "-6ren"> cannot be converted to List> "-我有一个自定义 ListView ,允许单击列表中的项目。 运行良好的代码,类似于 google 自己站点上的许多示例,并且在更新的 java 之前成功编译,是这样的: List myMapList -6ren">
gpt4 book ai didi

java - 自定义 View 布局 - "List cannot be converted to List> "

转载 作者:行者123 更新时间:2023-11-29 21:01:48 25 4
gpt4 key购买 nike

我有一个自定义 ListView ,允许单击列表中的项目。

运行良好的代码,类似于 google 自己站点上的许多示例,并且在更新的 java 之前成功编译,是这样的:

List<Map> myMapList = new ArrayList<Map>();
Map<String, String> myMap = new HashMap<String, String>();
private ListView myListView;

for (int i = 0; i < mydata.length(); i++) {

JSONObject t = mydata.getJSONObject(i);

myMap = new HashMap<String, String>();

myMap.put("field_1", t.getString("field_1"));

.... (more of these)

myMapList.add(myMap);
}


String[] layoutNames = new String[] { "field_1", "field_2", "field_3",
"field_4", "field_5" };

int[] layoutIDs = new int[] { R.id.field_1, R.id.field_2, R.id.field_3,
R.id.field_4, R.id.field_5};

SimpleAdapter adapter = new SimpleAdapter(getBaseContext(),
(List<? extends Map<String, ?>>) myMapList, R.layout.my_list_row,
layoutNames, layoutIDs );

myListView.setAdapter(adapter);

一开始是warning,现在是compile-time error。

error: incompatible types: List<Map> cannot be converted to List<? extends Map<String,?>>

那么如何使用新规则将我的 String/Integer 组合输入到 List<> 中?


解决方案说明:

答案交给爱尚,见下文。请注意,此解决方案还消除了对“(List>)”强制转换的需要,因此该行现在显示为:

SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), 
myMapList, R.layout.my_list_row, layoutNames, layoutIDs );

眼睛也更舒服。

最佳答案

你必须改变这一行

List<Map> myMapList = new ArrayList<Map>();

List<Map<String, String>> myMapList = new ArrayList<Map<String, String>>();

关于java - 自定义 View 布局 - "List<Map> cannot be converted to List<? extends Map<String,?>> ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25855056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com