Я разбираю некоторые данные JSON с ключом грузовика (id) и именем (значением). Я положил его в HashMap, и я хочу отображать только Значение в ListView
.Представление hashmap в ListView
Однако я получаю эту ошибку
HashMap не может быть приведен к java.util.Map $ Входа
на этой линии: return (Map.Entry) mArrayList.get(position);
в моем TruckAdapter.
Может ли кто-нибудь увидеть, что я делаю неправильно?
Это мясо разбора 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);
Мой адаптер Класс
public class TruckAdapter extends BaseAdapter {
private final ArrayList mArrayList;
public TruckAdapter(ArrayList<HashMap<String, String>> map){
mArrayList = map;
}
@Override
public int getCount() {
return mArrayList.size();
}
@Override
public Map.Entry<String, String> getItem(int position) {
return (Map.Entry) mArrayList.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final View result;
if (convertView == null) {
result = LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false);
} else {
result = convertView;
}
Map.Entry<String, String> item = getItem(position);
((TextView) result.findViewById(R.id.text1)).setText(item.getValue());
return result;
}
}
JSON
[{"TRKlTruckKey":"1","TRKch10TruckNumber":"Ford"},{"TRKlTruckKey":"2","TRKch10TruckNumber":"Jeep"} ......
я предполагаю, что это просто HashMap не ArrayList из HashMap, вы можете показать мне свою JSON –
Показать Ответ JSON – Rahul
Я обновил вопрос, чтобы добавить JSON –