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

미세먼지 앱만들기 4

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

미세먼지 앱 v0.2

 

미세먼지 앱 v0.2(2017/06/21수정본)

 

지난 시간에는 API를 이용하여 앱에 모든 대기정보를 띄웠었습니다.

 

그러다보니 너무 복잡하고 보기도 힘들고, 측정소 이름도 다 알아야 했는데, 이번엔 조금 바꿔볼께요.

 

우선 대기측정정보가 24개씩 가져오는데 최근 1개의 정보만 가져오는 걸로 바꾸고, 

 

측정소는 시.도 정보만 입력하면 자동적으로 측정소 정보를 가져오게 해보겠습니다.

 

우선 API하나를 더 추가해야 합니다.

 

측정소 정보조회 API

 

우선 위의 링크를 누르신 후 측정소 정보를 조회할 수 있는 API를 추가합니다.

 

그럼 이제 레이아웃을 바꿔볼께요.

 

 

저번 레이아웃에서 스피너를 두개 추가했구요, 리스트뷰를 없애고 텍스트뷰를 추가했습니다.

 

왼쪽 스피너는 시.도 정보가 나올꺼고, 선택을 하면 오른쪽 스피너에 측정소이름이 나옵니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
public class MainActivity extends Activity implements OnClickListener,AdapterView.OnItemSelectedListener {
 
    Button getBtn;
    EditText where;
 
    static Spinner sido,station;    //스피너
    static String sidolist[]={"서울","부산","대전","대구","광주","울산","경기","강원","충북","충남","경북","경남","전북","전남","제주"};
    static String stationlist[];    //측정소목록(이건 api로 가져올꺼라 몇개인지 모른다)
    static ArrayAdapter<String> spinnerSido,spinnerStation; //spinner에 붙일 array adapter
    static TextView totalcnt,date,so2value,covalue,o3value,no2value,pm10value,khaivalue,so2grade,cograde,o3grade,no2grade,pm10grade,khaigrade;
    static int stationCnt=0;
    static Context mContext;    //static에서 context를 쓰기위해
cs

 

Line 1 : spinner용 onItemSelectedListener가 추가되었습니다.

Line 6 : 스피너가 추가되었고,

Line 7 : 시.도 리스트가 추가되었습니다.

Line 8 : 측정소 리스트는 가져올꺼니깐~

Line 9 : ArrayAdapter입니다.

 

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
        @Override
    public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
 
        switch(parent.getId()){
 
            case R.id.sido:     //시도 변경 스피너
                getStationList(sidolist[position]);
 
 
                break;
            case R.id.station:  //측정소 변경 스피너
                try{
                    Log.e("station name", stationlist[position]);
                }catch (Exception e){
                    Log.e("exception",""+e);
                }
 
                where.setText(stationlist[position]);   //측정소이름을 바로 입력해 준다.
 
                break;
 
 
            default:
                break;
 
        }
 
 
    }
cs

 

이곳이 onItemSelected 부분입니다.

 

Line 6 : 시.도가 선택되면 Line 7에서 스레드로 측정소목록을 가져옵니다.

 

Line 11 : 측정소가 선택되면 Line 18에서 검색창에 자동으로 측정소이름이 입력됩니다.

 

그럼 전처럼 가져오기 버튼만 누르면 측정정보를 가져오게 됩니다.^^

 

앱 실행모습입니다.

 

 

 

전 버전보다는 훨씬 깔끔해졌네요^^;;

 

다만 spinner가 잘 안보이네요 ㅠ

 

다음은 gps로 가장 가까운 측정소에서 측정정보를 가져와 볼께요^^

 

ps. 2017.06.12 링크파일 수정했습니다.

반응형

'Projects > Find dust for Android' 카테고리의 다른 글

대기오염정보조회 서비스 API 개선작업  (0) 2016.07.12
미세먼지 측정 앱 만들기 5  (72) 2015.04.30
미세먼지 앱만들기 3  (31) 2015.04.20
미세먼지 앱만들기 2  (2) 2015.04.17
미세먼지 앱만들기 1  (2) 2015.04.16

인기글