-
[Android] 안드로이드 NumberPicker 사용하기안드로이드 스튜디오 2022. 9. 13. 19:54
1. NumberPicker 개요
NumberPicker는 터치를 이용해 원하는 숫자를 쉽게 선택할 수 있도록 도와주는 도구입니다. 사용자의 나이, 체중 등 숫자를 선택해야 하는 화면에 활용할 수 있습니다.2. NumberPicker 구현(XML)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical"> <NumberPicker android:id="@+id/npker" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout>
3. NumberPicker 구현(Java)public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); NumberPicker npker = findViewById(R.id.npker); npker.setMaxValue(100); //최대값 npker.setMinValue(0); //최소값 npker.setValue(50);// 초기값 /* 만약 특정 문자열을 사용하고 싶으면 npker.setDisplayedValues(string[]); */ npker.setOnLongPressUpdateInterval(100); //길게 눌렀을 때 몇 초부터 반응? npker.setWrapSelectorWheel(true); //최대값 or 최소값에서 멈출지 넘어갈지 npker.setOnScrollListener(new NumberPicker.OnScrollListener(){ @Override public void onScrollStateChange(NumberPicker picker, int state) { switch (state) { case SCROLL_STATE_FLING : Toast.makeText(getApplicationContext(), "플링", Toast.LENGTH_SHORT).show(); break; case SCROLL_STATE_TOUCH_SCROLL: Toast.makeText(getApplicationContext(), "스크롤중", Toast.LENGTH_SHORT).show(); break; case SCROLL_STATE_IDLE: break; } } }); npker.setOnValueChangedListener(new NumberPicker.OnValueChangeListener(){ @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { Toast.makeText(getApplicationContext(), "" + oldVal +"에서"+ newVal +"(으)로", Toast.LENGTH_SHORT).show(); } }); } }
- setMaxValue(int): 최댓값
- setMinValue(int): 최솟값
- setValue(int): 현재값(초기값)
- setOnLongPressUpdateInterval(long): 꾹 눌렀을 때 언제부터 반응할지 시간차를 설정합니다. long타입으로 1/1000 초입니다.
- setDisplayedValues(string[]): 원하는 값의 집합을 설정합니다. 10, 20, 30처럼 연속된 정수가 아닐 때 활용할 수 있습니다.
- setWrapSelectorWheel(boolean): 최대값이나 최솟값에 도달했을 때 끝나지 않고 반대로 최대값이나 최솟값으로 넘어갈지를 설정합니니다. true이면 넘어갑니다.
- setOnScrollListener:
스크롤러의 상태에 따라 호출됩니다.
- SCROLL_STATE_FLING: 튕길 때
- SCROLL_STATE_TOUCH_SCROLL: 스크롤 되고 있으며 아직 손가락을 떼지 않은 상태
- SCROLL_STATE_IDLE: 멈춰있을 때
- setOnValueChangedListener:
값이 변할 때 호출됩니다.
4. 실제 구현 화면
개발자 문서:
https://developer.android.com/reference/android/widget/NumberPicker'안드로이드 스튜디오' 카테고리의 다른 글
[Android] 안드로이드 애니메이션(Animation) 구현 (4) - Alpha (투명도) (0) 2022.09.17 [Android] 안드로이드 Animation 구현 (3) - Scale (크기 변경) (0) 2022.09.17 [Android] 안드로이드 애니메이션(Animation) 구현 (2) -Translate(좌표 이동) (0) 2022.09.17 [Android] 안드로이드 애니메이션(Animation) 구현 (1) - Rotate (0) 2022.09.16 [Android] 안드로이드 토스트(Toast) 사용하기 (0) 2022.09.14 댓글