2013-09-24 69 views
0

在我的應用程序中,我使用NumberPicker來選擇數字並將其顯示在我的TextView中。Android- NumberPicker更改外觀

我有兩個問題關於這個NumberPicker的事情。首先, 我怎麼能有一個看起來像image B而不是image A的NumberPicker?在Image 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 ......等等。

任何想法?

+0

http://stackoverflow.com/a/8007955/2074990 – bofredo

+0

我實際上使用'setDisplayedValues',但它仍然不會移動或沒有箭頭,我可以選擇值 – sftdev

+0

http://developer.android.com /reference/android/widget/NumberPicker.html。使用'Theme.Holo' – Raghunandan

回答

0

從文檔

  • 如果當前主題是從Theme衍生微件呈現 電流值作爲與上述的增量按鍵 和下方的減少按鈕的可編輯輸入域引用。長按按鈕允許 快速更改當前值。點擊輸入欄 可以輸入所需的值。

  • 如果當前主題是從Theme_HoloTheme_Holo_Light
    小部件呈現的當前值與上述 較小值的可編輯輸入區和下方的較大的值導出。點擊較小的 或更大值,通過向上或向下動畫數字軸來選擇它,以使所選值成爲當前值。向上或向下傾斜允許多次遞增或遞減當前值。長按較小和較大的值也可以快速更改當前值。點擊當前值可以輸入所需的值。

因此,對於圖像B使用Theme.Holo

我還沒有試過以下。試試吧ANS使用Theme.holo

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

1

你可以參考這個library在Android的定製任何視圖/小部件。

+0

不錯的圖書館! – bofredo