안드로이드 스튜디오
[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
NumberPicker | Android Developers
android.net.wifi.hotspot2.omadm
developer.android.com