Java 在ListView上显示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

我正在解析一些JSON数据—一个卡车密钥(id)和一个名称(值)。我把它放在一个HashMap中,只想在
列表视图中显示

然而,我不断得到这个错误

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);
}