//布局文件代码
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:gravity="center" tools:context="sinfotek.com.cn.numberpickdemo.MainActivity"> <NumberPicker android:id="@+id/numberPicker" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>//MainActivity 代码
public class MainActivity extends AppCompatActivity implements NumberPicker.Formatter { private NumberPicker numberPicker; private String TAG="TEST"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); numberPicker = ((NumberPicker) findViewById(R.id.numberPicker)); initPicker(); } private void initPicker() { numberPicker.setMaxValue(11); numberPicker.setMinValue(5); numberPicker.setFormatter(this); numberPicker.setWrapSelectorWheel(true); numberPicker.setOnScrollListener(mScrollListener); numberPicker.setOnValueChangedListener(mValueChangeListener); } @Override public String format(int value) { if (10>value) { return "0"+value; } return ""+value; } private NumberPicker.OnScrollListener mScrollListener=new NumberPicker.OnScrollListener() { @Override public void onScrollStateChange(NumberPicker view, int scrollState) { int value = view.getValue(); switch (scrollState) { case SCROLL_STATE_FLING: //飞滚状态 Log.i(TAG, "onScrollStateChange: 当前状态"+value+"SCROLL_STATE_FLING"); break; case SCROLL_STATE_IDLE: //滚动停止状态 Log.i(TAG, "onScrollStateChange: 当前状态"+value+"SCROLL_STATE_IDLE"); break; case SCROLL_STATE_TOUCH_SCROLL: //按下滚动状态 Log.i(TAG, "onScrollStateChange: 当前状态"+value+"SCROLL_STATE_TOUCH_SCROLL"); break; } } }; private NumberPicker.OnValueChangeListener mValueChangeListener=new NumberPicker.OnValueChangeListener() { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { Toast.makeText(MainActivity.this,"当前值"+newVal+" " + " 上一个值"+oldVal,Toast.LENGTH_SHORT).show(); } };
//后面是效果