본문 바로가기
Projects/Find dust for Android

미세먼지 앱만들기 3

by Answer Choi 2015. 4. 20.
반응형



미세먼지앱 v0.1


이제 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

인기글