Android에서 Spinner를 사용하는 경우 Spinner에서 선택된 아이템을 가져오는 방법을 제시한다.

가장 간단한 String Array type을 기준으로 설명한다.

   

우선 Spinner에 Event Listener를 달자. (Event Listener를 다는 방법은 각자 원하는 방식으로~)

spinner.setOnItemSelectedListener(mOnItemSelectedListener);

   

그리고 Event Listener를 정의한다.

/**

* @brief        OnItemSelectedListener - OnItemSeleted event listener

*/

private OnItemSelectedListener mOnItemSelectedListener = new OnItemSelectedListener() {

   

@Override

public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

WLog.m(TAG, "onItemSelected() entered!!");

   

String selItem= (String)spinner.getSelectedItem();

Log.i(TAG, "Spinner selected item = "+selItem);

}

   

@Override

public void onNothingSelected(AdapterView<?> parent) {

WLog.m(TAG, "onNothingSelected() entered!!");

}

};

   

Activity가 활성화되고 Spinner가 onCreate(), onResume()에서 호출 되는 시점에서 onItemSelected() method를 호출하고 이 후는 User의 action으로 인해 Spinner에서 event가 발생했을 때 호출된다.

   

주의할 점은 Spinner의 ArrayItem type에 따라 getSelectedItem() method의 반환값이 다르다는 것이다. 즉 Object를 반환한다는 말이다. 이 말은 Item type에 따라 적절한 casting과 가공 과정이 필요할 수도 있다는 말이 된다.

   

예를 들면 Cusor의 반환이라면 다음과 같은 가공 처리 과정이 필요하다.

Cursor cursor = spinner.getSelectedItem();

cursor.movePosition(pos);

String selItem = cursor.getString(cursor.getColumnIndex([Filed Name]));

   

이상으로 Spinner에서 Item을 선택했을 때 해야 할 처리과정에 대한 설명을 마친다

+ Recent posts