반응형
이제 API를 이용하여 앱에서 파싱해오면 됩니다.
일단 Layout을 만들어야 합니다.
매 시간 측정하므로 리스트뷰를 사용하였고, 위치를 입력하면 위치값을 가지고 측정소에서
정보를 가져오게 하였습니다.
요부분이 버튼처리 부분입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public void onClick(View v) { switch(v.getId()){ case R.id.getBtn: String stationName; stationName=where.getText().toString(); getWeather(stationName); break; default: break; } } | cs |
대기정보를 가져오는 스레드 부분입니다.
1 2 3 4 5 6 7 | public static void getWeather(String name){ updated=false; GetFindDustThread.active=true; GetFindDustThread getweatherthread=new GetFindDustThread(false,name); //스레드생성(UI 스레드사용시 system 뻗는다) getweatherthread.start(); //스레드 시작 } | cs |
대기정보를 파싱한 후 리스트뷰에 뿌리는 부분입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | public static void FindDustThreadResponse(String sNumOfRows,String[] sDate,String[] sSo2Value,String[] sCoValue,String[]sO3Value,String[] sNo2Value,String[] sPm10Value,String[] sKhaiValue,String[] sKhaiGrade,String[] sSo2Grade,String[]sNo2Grade,String[] sCoGrade,String[] sO3Grade,String[] sPm10Grade){ stationCnt=0; stationCnt=Integer.parseInt(sNumOfRows); Log.w("stationcnt",String.valueOf(stationCnt)); if(stationCnt==0) { totalcnt.setText("측정소 정보가 없거나 측정정보가 없습니다."); }else{ totalcnt.setText(stationCnt + "개의 대기정보가 있습니다."); listadapter.setDate(sDate); // listadapter.setSo2Value(sSo2Value); listadapter.setCoValue(sCoValue); listadapter.setO3Value(sO3Value); listadapter.setNo2Value(sNo2Value); listadapter.setPm10Value(sPm10Value); listadapter.setKhaiValue(sKhaiValue); listadapter.setKhaiGrade(sKhaiGrade); listadapter.setSo2Grade(sSo2Grade); listadapter.setNo2Grade(sNo2Grade); listadapter.setCoGrade(sCoGrade); listadapter.setO3Grade(sO3Grade); listadapter.setNo2Grade(sNo2Grade); listadapter.setPm10Grade(sPm10Grade); } updated=true; //정보가 담겼으니 flag를 true로 listadapter.notifyDataSetChanged(); //리스트뷰 업데이트 GetFindDustThread.active=false; GetFindDustThread.interrupted(); } | cs |
정보가 많다보니 노가다네요 ㅠㅠ
실행모습입니다.
아래는 잘못된 측정소일때~
측정소 정보는 airkorea에 있습니다.
다음번엔 측정소정보를 선택하는 걸로 바꿔볼께요^^
반응형
'Projects > Find dust for Android' 카테고리의 다른 글
대기오염정보조회 서비스 API 개선작업 (0) | 2016.07.12 |
---|---|
미세먼지 측정 앱 만들기 5 (72) | 2015.04.30 |
미세먼지 앱만들기 4 (46) | 2015.04.22 |
미세먼지 앱만들기 2 (2) | 2015.04.17 |
미세먼지 앱만들기 1 (2) | 2015.04.16 |