투케이2K

188. (AndroidStudio/android/java) spinner 스피너 메뉴 목록 만들기 실시 본문

Android

188. (AndroidStudio/android/java) spinner 스피너 메뉴 목록 만들기 실시

투케이2K 2021. 9. 15. 14:27

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : java


[소스 코드]

<소스코드 : XML 파일>

            <LinearLayout
                android:layout_width="200dp"
                android:layout_height="100dp"
                android:orientation="horizontal"
                android:background="#ffffff">

                <Spinner
                    android:id="@+id/spinner"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_gravity="center"
                    android:gravity="center"

                    android:spinnerMode="dropdown" />
                    <!-- spinnerMode="dropdown" : 드롭 다운 메뉴 형식 -->

            </LinearLayout>










<소스코드 : JAVA 파일>

// [스피너 사용 전역 변수 선언 부분]
Spinner spinner; // 컴포넌트
ArrayList<String> arrayList; // 스피너 메뉴 목록을 담을 배열
ArrayAdapter<String> arrayAdapter; // 스피너 메뉴 목록 배열을 연결할 어댑터



// [스피너 메뉴 목록 배열 객체 생성 및 메뉴 데이터 삽입]
arrayList = new ArrayList<>(); // 배열 생성
arrayList.add("ADID"); // 메뉴 데이터 삽입
arrayList.add("WIFI MAC"); // 메뉴 데이터 삽입



// [스피너 메뉴 목록 배열 어댑터와 매핑]
arrayAdapter = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, arrayList);



// [스피너 컴포넌트 XML과 매핑]
spinner = (Spinner)findViewById(R.id.spinner); 
spinner.setAdapter(arrayAdapter); // 어댑터 적용
spinner.setSelection(0); // 초기 스피너 메뉴 항목 지정



// [스피너 메뉴 목록 선택 및 변경 이벤트 정의]
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
	@Override
	public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
		//TODO 하위 버전 텍스트 색상 지원하기 위해 선언
		((TextView) adapterView.getChildAt(0)).setTextColor(Color.BLACK);
		((TextView) adapterView.getChildAt(0)).setTextSize(13);

		// 선택한 메뉴 목록 확인 실시
		Toast.makeText(getApplicationContext(), arrayList.get(i)+" 선택", Toast.LENGTH_SHORT).show();
		Strimg spinnerMenu = String.valueOf(arrayList.get(i));
	}
	@Override
	public void onNothingSelected(AdapterView<?> adapterView) {
	}
});

[결과 출력]


 

반응형
Comments