2017-02-27 60 views
1

我的微调器的值为1-50。在执行按钮上设置微调器值位置

<Spinner 
    android:id="@+id/spinnerSel" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_centerInParent="true" 
    android:layout_weight="0.4" 
    android:ellipsize="end" 
    android:gravity="right" 
    android:spinnerMode="dropdown" /> 

默认情况下没有任何选定的值。所以,我已经把它的选择0

spin.setSelection(0); 

现在,当用户performClick然后微调公开选拔下拉,我希望它开始从20
意味着必须对点击默认下拉位置开始从20。然后用户可以滚动到上或下并更改值。

我搜索很多,但没有得到任何关于这方面的想法。

任何帮助将不胜感激。

+0

尝试setonclick监听器并将'spin.setSelection(20);'放在里面。 –

+0

setOnClick listner无法正常工作 –

回答

1

请尝试下面的代码!

spin.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if(event.getAction() == MotionEvent.ACTION_UP){ 
        spin.setSelection(20); 
       } 
       return false; 
      } 
     }); 

编码快乐:)

+0

不错的解决方案。但是,有一个问题。如果我不选择任何值并关闭下拉菜单,则默认设置为20. – ketan

0

这是很好用Shrenik Shah的答案。但对于默认项目使用这个。

spin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
       @Override 
       public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

       } 

       @Override 
       public void onNothingSelected(AdapterView<?> parent) { 
         String myString = "Select one"; //the value you want the position for 

         ArrayAdapter myAdap = (ArrayAdapter) spin.getAdapter(); //cast to an ArrayAdapter 

         int spinnerPosition = myAdap.getPosition(myString); 

         //set the default according to value 
         spin.setSelection(spinnerPosition); 
       } 
      }); 

加上Shrenik Shah的回答。

spin.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if(event.getAction() == MotionEvent.ACTION_UP){ 
        spin.setSelection(20); 
       } 
       return false; 
      } 
     }); 

注:我们不能用null作为默认选择。我们必须为“Select One”添加一些 的值。

+0

感谢CoDFather。但onNothingSelected并未呼叫。当我点击边微调。我没有选择任何东西。 '为setSelection(0)' – ketan