GSON进入ListView速度慢
GSON into ListView slow speed
我正在尝试用 gson 解析 json,然后设置到列表视图中,但它需要很长时间,我想问问 Whosebug 社区。也许我做错了什么?
这是我如何将 json 放入列表视图
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;
}
}
欢迎任何建议,如任何关于问题改进的建议,谢谢
我可以给你的一个建议是这个(它会减少过多的冗余调用)
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>();
两次
我正在尝试用 gson 解析 json,然后设置到列表视图中,但它需要很长时间,我想问问 Whosebug 社区。也许我做错了什么? 这是我如何将 json 放入列表视图
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;
}
}
欢迎任何建议,如任何关于问题改进的建议,谢谢
我可以给你的一个建议是这个(它会减少过多的冗余调用)
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>();
两次