2016-07-19 8 views
0

Ich mag einen benutzerdefinierten Artikel Picker wie dieseUI Picker in Android

baut enter image description here

Ich mochte keine Gedanken über hören, wie diese Sache, die ich mit der Zeit Picker versucht zu bauen, aber ich denke, das ist nicht der richtige Ansatz.

+0

Scheck diesen Code aus kann helfen, voll: https: //code.google.com/archive/p/android-wheel/downloads –

+0

nur geben versuchen, auf Google suchen atleast –

+0

http : //stackoverflow.com/questions/24833827/wheel-picker-on-dialog-box-android –

Antwort

0

Diese heißt wheel picker

public class MainActivity extends Activity 
    { 
     // TODO: Externalize string-array 
     String wheelMenu1[] = new String[]{"name 1", "name 2", "name 3", "name 4", "name 5", "name 6","name 7","name 8","name 9"}; 
     String wheelMenu2[] = new String[]{"age 1", "age 2", "age 3"}; 
     String wheelMenu3[] = new String[]{"10", "20","30","40","50","60"}; 

     // Wheel scrolled flag 
     private boolean wheelScrolled = false; 

     private TextView text; 
     private EditText text1; 
     private EditText text2; 
     private EditText text3; 

     @Override 
     public void onCreate(Bundle savedInstanceState) 
      { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.main); 

       initWheel1(R.id.p1); 
       initWheel2(R.id.p2); 
       initWheel3(R.id.p3); 

       text1 = (EditText) this.findViewById(R.id.r1); 
       text2 = (EditText) this.findViewById(R.id.r2); 
       text3 = (EditText) this.findViewById(R.id.r3); 
       text = (TextView) this.findViewById(R.id.result); 
      } 

     // Wheel scrolled listener 
     OnWheelScrollListener scrolledListener = new OnWheelScrollListener() 
      { 
       public void onScrollStarts(WheelView wheel) 
        { 
         wheelScrolled = true; 
        } 

       public void onScrollEnds(WheelView wheel) 
        { 
         wheelScrolled = false; 
         updateStatus(); 
        } 
      }; 

     // Wheel changed listener 
     private final OnWheelChangedListener changedListener = new OnWheelChangedListener() 
      { 
       public void onChanged(WheelView wheel, int oldValue, int newValue) 
        { 
         if (!wheelScrolled) 
          { 
           updateStatus(); 
          } 
        } 
      }; 

     /** 
     * Updates entered PIN status 
     */ 
     private void updateStatus() 
      { 
       text1.setText(wheelMenu1[getWheel(R.id.p1).getCurrentItem()]); 
       text2.setText(wheelMenu2[getWheel(R.id.p2).getCurrentItem()]); 
       text3.setText(wheelMenu3[getWheel(R.id.p3).getCurrentItem()]); 

       text.setText(wheelMenu1[getWheel(R.id.p1).getCurrentItem()] + " - " + wheelMenu2[getWheel(R.id.p2).getCurrentItem()] + " - " + wheelMenu3[getWheel(R.id.p3).getCurrentItem()]); 
      } 

     /** 
     * Initializes wheel 
     * 
     * @param id 
     *   the wheel widget Id 
     */ 

     private void initWheel1(int id) 
      { 
       WheelView wheel = (WheelView) findViewById(id); 
       wheel.setAdapter(new ArrayWheelAdapter<String>(wheelMenu1)); 
       wheel.setVisibleItems(2); 
       wheel.setCurrentItem(0); 
       wheel.addChangingListener(changedListener); 
       wheel.addScrollingListener(scrolledListener); 
      } 

     private void initWheel2(int id) 
      { 
       WheelView wheel = (WheelView) findViewById(id); 
       wheel.setAdapter(new ArrayWheelAdapter<String>(wheelMenu2)); 
       wheel.setVisibleItems(2); 
       wheel.setCurrentItem(0); 
       wheel.addChangingListener(changedListener); 
       wheel.addScrollingListener(scrolledListener); 
      } 

     private void initWheel3(int id) 
      { 
       WheelView wheel = (WheelView) findViewById(id); 

       wheel.setAdapter(new ArrayWheelAdapter<String>(wheelMenu3)); 
       wheel.setVisibleItems(2); 
       wheel.setCurrentItem(0); 
       wheel.addChangingListener(changedListener); 
       wheel.addScrollingListener(scrolledListener); 
      } 

     /** 
     * Returns wheel by Id 
     * 
     * @param id 
     *   the wheel Id 
     * @return the wheel with passed Id 
     */ 
     private WheelView getWheel(int id) 
      { 
       return (WheelView) findViewById(id); 
      } 

     /** 
     * Tests wheel value 
     * 
     * @param id 
     *   the wheel Id 
     * @param value 
     *   the value to test 
     * @return true if wheel value is equal to passed value 
     */ 
     private int getWheelValue(int id) 
      { 
       return getWheel(id).getCurrentItem(); 
      } 
    } 

Prüfen Sie auch diese demo

enter image description here