Android- NumberPicker更改了外观

时间:2013-09-24 08:38:14

标签: android

在我的应用程序中,我使用NumberPicker来选择数字并在TextView中显示它。

关于这个NumberPicker事,我有两个问题。首先, 如何在image B中使用看起来像image A的NumberPicker?在图像B中,这就是我想象的我的NumberPicker。到目前为止,这就是我所做的:

enter image description here

我的NumberPicker布局:

        <NumberPicker
            android:id="@+id/numberPicker"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="64dp" />

        <LinearLayout
           ...>
            <Button
                android:id="@+id/btn_set"
                android:text="Set" />

            <Button
                android:id="@+id/btn_cancel"
                android:text="Cancel" />
        </LinearLayout>

然后这是我的活动:

    public void onSomethingButtonClickedToShowDiaolg(View view){
            final Dialog dialog = new Dialog(MyActivity.this);
            dialog.setContentView(R.layout.number_selector);
            Button btnSet = (Button) dialog.findViewById(R.id.btn_price_set);
            Button btnCancel = (Button) dialog.findViewById(R.id.btn_price_cancel);
            final NumberPicker numberPicker = (NumberPicker) dialog.findViewById(R.id.numberPicker);
            String[] values = {"5000", "10000", "15000", "20000"};
            numberPicker.setDisplayedValues(values);

            numberPicker.setWrapSelectorWheel(false);
            numberPicker.setOnValueChangedListener(new OnValueChangeListener() {

                @Override
                public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
                    // TODO Auto-generated method stub
                    System.out.println("set number: : " + newVal);
                }
            });

            btnSet.setOnClickListener(new OnClickListener() {
                  @Override
                  public void onClick(View v) {
                      dialog.dismiss();
                   }    
           });
            btnCancel.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog.dismiss();
                }    
            });

            dialog.show();
        }

然后,我的另一个问题是:如何在我的NumberPicker中设置某些值,如... 1000,3000,5000,9000?因为如果我使用setMinValuesetMaxValue ..我的数字可以是1000,1001,1002 ......等等。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

从文档引用

  • 如果当前主题派生自Theme,则小部件会显示 当前值作为带有增量按钮的可编辑输入字段 上面和下面的减量按钮。长按按钮允许 快速更改当前值。点击输入字段 允许输入所需的值。

  • 如果当前主题源自Theme_HoloTheme_Holo_Light
    小部件将当前值显示为可编辑的输入字段 上面的值较小,下面的值较大。点击较小的 或更大的值通过向上或向下设置数字轴的动画来选择它,以使所选值为当前值。向上或向下投掷允许当前值的多个增量或减量。长按较小和较大的值也可以快速更改当前值。点击当前值允许输入
    期望值。

因此对于图像B使用Theme.Holo

我没试过以下。尝试使用Theme.holo

Is it possible to change the increment of NumberPicker when long pressing?

答案 1 :(得分:0)

您可以参考此library来自定义android中的任何视图/小部件。