티스토리 뷰
# 스피너?
✔ 윈도우에서 콤보박스로 불림
✔ 스피너 객체도 선택 위젯
: 스피너를 누르면 그 아래쪽에 작은 창이 나타나고 그 안에 들어있는 여러 데이터 중의 하나를 선택할 수 있음
# 스피너를 구현해보자!
1) 원하는 액티비티 XML 파일에 스피너 추가
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="선택한 아이템"
android:textSize="30sp" />
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
2) 자바소스 파일 수정
// MainActivity.java
public class MainActivity extends AppCompatActivity {
TextView textView;
String[] items = {"mike", "angel", "crow", "john", "ginnie", "sally", "cohen", "rice"}; //스피너 아이템으로 보일 문자열 데이터들의 배열
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
Spinner spinner = findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items); //API에서 제공하는 어댑터
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //스피너 항목을 선택하는 창을 위한 레이아웃 설정
spinner.setAdapter(adapter); //스피너에 어댑터 설정
//스피너 아이템이 선택되면 자동 호출
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
//스피너 객체가 아이템 선택 이벤트를 처리할 수 있도록 사용하는 리스너
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
textView.setText(items[position]);
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
textView.setText("");
}
});
}
}
* 스피너 커스텀은 리싸이클러뷰와 상당히 유사함으로 해당 포스팅 참고!
출처
Do it! 안드로이드 앱 프로그래밍(개정8판)
'안드로이드 > 자바' 카테고리의 다른 글
[안드로이드] 네트워킹 (0) | 2021.09.13 |
---|---|
[안드로이드] 스레드와 핸들러 (0) | 2021.09.12 |
[안드로이드] 리싸이클러뷰 (0) | 2021.09.09 |
[안드로이드] 레이아웃 커스텀 (0) | 2021.09.07 |
[안드로이드] 뷰 커스텀 (0) | 2021.09.06 |