GSON进入ListView速度慢

时间:2015-01-13 20:58:57

标签: android json listview gson

我正在尝试使用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;
}
}

任何消化都是受欢迎的,因为对问题的改进有任何消解,谢谢

1 个答案:

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

注意 MessagesMessagesValues是指示性的。在这里使用您的类型

你也声明了

HashMap<String, Object> map = new HashMap<String, Object>();

两次