我正在尝试使用gson解析json,然后设置到listview但它需要很长时间,我想问一下stackoverflow社区。也许我做错了什么? 这是我如何将我的json放入listview
HashMap<String, Object> map = new HashMap<String, Object>();
Gson gson = new GsonBuilder().create();
ml = gson.fromJson(gsonString, Main.class);
HashMap<String, Object> map = new HashMap<String, Object>();
for(int i=0;i<ml.getData().getMessages().size();i++){
map.put(TAG_TITLE, ml.getData().getMessages().get(i).getTitle());
map.put(TAG_TIME, ml.getData().getMessages().get(i).getTime());
map.put(TAG_ID, ml.getData().getMessages().get(i).getId());
map.put(TAG_STATUS,ml.getData().getMessages().get(i).getStatus());
mailList.add(map);
}
自定义适配器
public class MyAdapter extends SimpleAdapter {
public MyAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
}
public View getView(final int position, View convertView, final ViewGroup parent) {
View v = super.getView(position, convertView, parent);
TextView txtTitle= (TextView) v.findViewById(R.id.msg_title);
TextView txtTime= (TextView) v.findViewById(R.id.msg_date);
return v;
}
}
任何消化都是受欢迎的,因为对问题的改进有任何消解,谢谢
答案 0 :(得分:0)
我能给你的一个建议就是这个(它会减少太多的冗余电话)
Messages msg = ml.getData().getMessages();
for(int i=0;i<msg.size();i++){
MessageValues mv = msg.get(i);
map.put(TAG_TITLE, mv.getTitle());
map.put(TAG_TIME, mv.getTime());
map.put(TAG_ID, mv.getId());
map.put(TAG_STATUS, mv.getStatus());
mailList.add(map);
}
注意 Messages
和MessagesValues
是指示性的。在这里使用您的类型
你也声明了
HashMap<String, Object> map = new HashMap<String, Object>();
两次