Programming/Android

[안드로이드] Spinner에 value 지정하기(Android Spinner set hidden value)

devssun 2017. 7. 21. 10:00
728x90
반응형



Spinner 위젯은 콤보박스라고 할 수 있다.. 아마 같은 거 일걸류

아무튼 아래 그림과 같은 위젯이다

dropdown형식으로 나타나는 리스트에서 아이템을 선택하는 형식으로 되어있다


spinner는 text만 설정할 수 있기 때문에 선택한 아이템에 대한 별도의 value를 지정하고싶다면 다른 방법을 사용한다





#HashMap<> 사용하기

HashMap은 Key, Value의 한 쌍으로 존재하는 데이터구조이다

Map interface에 기초하여 Hash테이블이 구성되어있다


이것을 사용하여 spinner에 숨겨진 value를 지정할 수 있다



1. HashMap 선언

화면에 보여줄 String형을 Key로 value를 Integer로 설정하였다


1
private HashMap<String, Integer> map = new HashMap<String, Integer>();
cs



2. put() 메소드를 사용하여 데이터 삽입하기

위에서 선언한 hashmap 객체에 데이터를 삽입한다

1
map.put(String var, int var);
cs



3. Spinner 객체에 리스너 등록

spinner의 아이템을 클릭했을 시 실행될 리스너를 연결한다

이작없을 위해 익명클래스로 선언하거나 implements에 AdapterView.OnItemSelectedListener 를 추가한다

1
spinner.setOnItemSelectedListener(this);
cs




4. 선택된 아이템의 번호 가져오기

implement, override, getter, setter 등 생성하는 메뉴 단축키는 command+n이다

선택된 아이템의 번호를 get()으로 가져와 선언한 변수에 넣는다


1
2
3
4
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    farmSeq = map.get(spinner.getSelectedItem());
}
cs




끝!



디버깅은 Log 함수를 사용한다


반응형