2012-03-23 4 views
0

난 그냥 휠 선택기 샘플 프로젝트를 다운로드하십시오. 이 프로젝트에서 휠 픽커에서 선택하는 항목은 텍스트보기에서 업데이트됩니다. 여기에서 텍스트보기를 단추로 변경했습니다. 단추를 클릭하면 휠 선택기의 값이 표시됩니다. 그것의 가능한 또는 아닙니다? 여기안드로이드 휠 피커

내 샘플 코드 :

 public void onCreate(Bundle savedInstanceState) 
      { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.test_wheel_layout);    

       bundle = new Bundle(); 
       wheelArrayList = new ArrayList<String>(); 
       bundle = getIntent().getExtras();    


       wheelArrayList = (ArrayList<String>) bundle.get("ItemKey");  
       wheelMenu1 = wheelArrayList.toArray(new String[wheelArrayList.size()]); 
       initWheel1(R.id.p1);    


       btnCurrentSelection = (Button) this.findViewById(R.id.btn_FrstSelection);   

       btnCurrentSelection.setText(bundle.getString("selectedValue"));     




       btnCurrentSelection.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         // TODO Auto-generated method stub 


         //OnWheelChangedListener(); 
        } 
       }); 

      } 


     // 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() 
      {   
      PreferenceConnector.writeString(WheelActivity.this, itemKeyName, wheelMenu1[getWheel(R.id.p1).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(5); 
       wheel.setCurrentItem(0); 
//    text.setText(""+wheel.getCurrentItem()); 
       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(); 
      } 

중 하나가 지금은 해결책을 가지고

답변

1

집중하는 방법, 나에게 도움이됩니다. 여기에 코드

btnCurrentSelection.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      int id = getIndex(wheelMenu1, btnCurrentSelection.getText() 
        .toString()); 
      getWheel(R.id.p1).setCurrentItem(id); 

     } 
    }); 


public int getIndex(String[] array, String specificValue) { 

    for (int i = 0; i < array.length; i++) { 

     if (array[i].equals(specificValue)) { 

      return i; 

     } 

    } 

    return 0; 
}