2016-07-19 6 views
0

Я хочу построить сборщик пользовательского элемента, как этогоUI Выбор в Android

enter image description here

Я хотел бы услышать какие-либо идеи о том, как построить эту вещь, которую я пытался с выбором времени, но я предполагаю, что это это не правильный подход.

+0

этот код может помочь полностью: https: //code.google.com/archive/p/android-wheel/downloads –

+0

просто дать попробовать поиск на Google по крайней мере –

+0

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

ответ

0

Это называется 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(); 
      } 
    } 

Также Проверить эту проверку demo

enter image description here