How to create a number picker dialog?

前端 未结 5 2243
误落风尘
误落风尘 2020-11-28 05:40

I want to be able to create a Dialog that allows the user to pick a number from a specified range.

I know that there are existing widgets(like those from quietlycod

5条回答
  •  悲&欢浪女
    2020-11-28 06:04

    I have made a small demo of NumberPicker. This may not be perfect but you can use and modify the same.

    public class MainActivity extends Activity implements NumberPicker.OnValueChangeListener
    {
        private static TextView tv;
        static Dialog d ;
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            tv = (TextView) findViewById(R.id.textView1);
            Button b = (Button) findViewById(R.id.button11);
             b.setOnClickListener(new OnClickListener()
             {
    
                @Override
                public void onClick(View v) {
                     show();
                }
                });
               }
         @Override
        public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
    
             Log.i("value is",""+newVal);
    
         }
    
        public void show()
        {
    
             final Dialog d = new Dialog(MainActivity.this);
             d.setTitle("NumberPicker");
             d.setContentView(R.layout.dialog);
             Button b1 = (Button) d.findViewById(R.id.button1);
             Button b2 = (Button) d.findViewById(R.id.button2);
             final NumberPicker np = (NumberPicker) d.findViewById(R.id.numberPicker1);
             np.setMaxValue(100);
             np.setMinValue(0);
             np.setWrapSelectorWheel(false);
             np.setOnValueChangedListener(this);
             b1.setOnClickListener(new OnClickListener()
             {
              @Override
              public void onClick(View v) {
                  tv.setText(String.valueOf(np.getValue()));
                  d.dismiss();
               }    
              });
             b2.setOnClickListener(new OnClickListener()
             {
              @Override
              public void onClick(View v) {
                  d.dismiss();
               }    
              });
           d.show();
    
    
        }
    }
    

    activity_main.xml

    
    
        
    
        

    dialog.xml

    
    
        
    
        

    Edit:

    under res/values/dimens.xml

    
    
        
        16dp
        16dp
    
    
    

提交回复
热议问题