지난 시간에는 API를 이용하여 앱에 모든 대기정보를 띄웠었습니다.
그러다보니 너무 복잡하고 보기도 힘들고, 측정소 이름도 다 알아야 했는데, 이번엔 조금 바꿔볼께요.
우선 대기측정정보가 24개씩 가져오는데 최근 1개의 정보만 가져오는 걸로 바꾸고,
측정소는 시.도 정보만 입력하면 자동적으로 측정소 정보를 가져오게 해보겠습니다.
우선 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 |