2015-01-13 5 views
0

나는 gson과 json을 구문 분석하려고 시도하고 목록보기로 설정했지만 오래 걸리고 나는 stackoverflow 커뮤니티에 물어보고 싶다. 어쩌면 내가 뭔가 잘못한거야? 여기 내가ListView 느린 속도로 GSON

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

모든 sugestion 목록보기에 내 JSON을 넣어 환영합니다, 질문의 inproving에 어떤 sugestion, 당신에게

+0

? ANR을 얻고 있습니까 아니면 느린 성능으로 인해 UX 문제가 발생합니까? – pzulw

+0

ml.getData(). getMessages()가 느린 부분일까요? 매번 디스크에서 읽지 않는지 확인하십시오. – pzulw

+0

내 말은, gson, 네이티브 json 라이브러리 tok 어쩌면 3, 내가 gson은 입니다 웹에서 읽기 때문에 목록보기에 데이터를로드하는 데 2 ​​초 걸립니다 의미, 정말 내 문제는 내 생각에 – user4425973

답변

0

한 가지 제안을 감사하는 방법입니다 I 당신에게 줄 수 있습니다 (중복 통화가 너무 많이 줄어 듭니다)

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

를 선언 한 또한

당신의 유형을 사용하여 두 번

의미 "너무 오래 걸립니다"무엇
+0

난 메시지 (i)를 만들 수 없으므로 mv = ml.getData가됩니다. 괜찮습니까? – user4425973

+0

리스트 msg = ml.getData(). getMessages(); 좋아해요. – user4425973

+0

이지만이 상황에 가장 적합한 해시 맵입니까? btw, 큰 json 응답으로 인해 속도가 느려질 수 있습니까? – user4425973

관련 문제