1

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

NumberPicker关于这件事,我有两个问题。首先,我怎样才能拥有一个看起来像image Bin的 NumberPicker image A?在图 B 中,这就是我想象的 NumberPicker 的样子。到目前为止,这就是我所做的:

在此处输入图像描述

我的 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?因为如果我使用setMinValueand setMaxValue.. 我可以有 1000、1001、1002 等数字。

有任何想法吗?

4

2 回答 2

0

从文档中引用

  • 如果当前主题是从小部件派生的,Theme则将当前值显示为可编辑的输入字段,上面有一个递增按钮,下面有一个递减按钮。长按按钮可以快速更改当前值。点击输入字段可以输入所需的值。

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

所以对于图像 B 使用Theme.Holo

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

长按时是否可以更改 NumberPicker 的增量?

于 2013-09-24T09:00:32.537 回答
0

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

于 2013-09-24T09:11:34.510 回答