Java 在ListView上显示Hashmap
我正在解析一些JSON数据—一个卡车密钥(id)和一个名称(值)。我把它放在一个HashMap中,只想在Java 在ListView上显示Hashmap,java,android,listview,android-adapter,Java,Android,Listview,Android Adapter,我正在解析一些JSON数据—一个卡车密钥(id)和一个名称(值)。我把它放在一个HashMap中,只想在列表视图中显示值 然而,我不断得到这个错误 HashMap不能转换为java.util.Map$条目 在这一行:return(Map.Entry)mArrayList.get(position)在我的卡车适配器中 有人能看出我做错了什么吗? 下面是解析JSON的内容,将其添加到ArrayList,然后实例化listview适配器 private List<HashMap<Strin
列表视图中显示值
然而,我不断得到这个错误
HashMap不能转换为java.util.Map$条目
在这一行:return(Map.Entry)mArrayList.get(position)代码>在我的卡车适配器中
有人能看出我做错了什么吗?
下面是解析JSON的内容,将其添加到ArrayList,然后实例化listview适配器
private List<HashMap<String, String>> listTrucks = new ArrayList<HashMap<String, String>>();
for (int i = 0; i < arrayRecordSet.length(); i++) {
record = arrayRecordSet.getJSONObject(i);
map = new HashMap<>();
map.put("MYKEY", record.getString("SOME TRUCK KEY"));
map.put("MYVALUE", record.getString("SOME TRUCK VALUE"));
listTrucks.add(map);
}
TruckAdapter truckAdapter = new TruckAdapter(listTrucks);
lv.setAdapter(truckAdapter);
您正在定义一个ArrayList
,但您正在尝试从getItem
方法获取一个Map.Entry
。您的列表应该是ArrayList
,并修复加载方法:
Map.Entry<String, String> map;
for (int i = 0; i < arrayRecordSet.length(); i++) {
record = arrayRecordSet.getJSONObject(i);
map = new AbstractMap.SimpleEntry<String, String>(record.getString("SOME TRUCK KEY"), record.getString("SOME TRUCK VALUE"));
listTrucks.add(map);
}
加载方法
for (int i = 0; i < arrayRecordSet.length(); i++) {
record = arrayRecordSet.getJSONObject(i);
listTrucks.add(new Truck(record.getString("SOME TRUCK KEY", record.getString("SOME TRUCK VALUE")));
}
@Override
public Map.Entry<String, String> getItem(int position) {
Truck truck = listTrucks.get(position);
return new AbstractMap.SimpleEntry<String, String>(truck.getTRKlTruckKey, truck.getTRKch10TruckNumber);
}
for(int i=0;i
检索方法
for (int i = 0; i < arrayRecordSet.length(); i++) {
record = arrayRecordSet.getJSONObject(i);
listTrucks.add(new Truck(record.getString("SOME TRUCK KEY", record.getString("SOME TRUCK VALUE")));
}
@Override
public Map.Entry<String, String> getItem(int position) {
Truck truck = listTrucks.get(position);
return new AbstractMap.SimpleEntry<String, String>(truck.getTRKlTruckKey, truck.getTRKch10TruckNumber);
}
@覆盖
公共映射。条目getItem(int位置){
卡车=列表卡车。获取(位置);
返回新的AbstractMap.SimpleEntry(truck.getTrkltruckey,truck.getTRKch10TruckNumber);
}
创建一个名为Truck
的类
for (int i = 0; i < arrayRecordSet.length(); i++) {
record = arrayRecordSet.getJSONObject(i);
Truck truck = new Truck();
truck.setKey(record.getString("TRKlTruckKey"));
truck.setNumber(record.getString("TRKch10TruckNumber"));
listTrucks.add(truck);
}
我猜它只是hashmap而不是hashmap的arraylist,你能给我看看你的jsonShow JSON Response吗?我更新了问题,添加了JSON
for (int i = 0; i < arrayRecordSet.length(); i++) {
record = arrayRecordSet.getJSONObject(i);
Truck truck = new Truck();
truck.setKey(record.getString("TRKlTruckKey"));
truck.setNumber(record.getString("TRKch10TruckNumber"));
listTrucks.add(truck);
}
public TruckAdapter(ArrayList<Truck> trucks){
mArrayList = trucks;
}
@Override
public Truck getItem(int position) {
return mArrayList.get(position);
}