2017-02-27 11 views
1

私はスピナーの値が1-50です。performclickのスピナー値の位置を設定します

<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" /> 

デフォルトでは、選択された値はありません。だから、私はそれが今、そのユーザーperformClickスピナーオープン選択ドロップダウンと私はそれがクリックデフォルトのドロップダウン位置に20
手段から始めたいが、ユーザその後20から起動したときに0

spin.setSelection(0); 

への選択だ設定されています上または下にスクロールして値を変更できます。

私はロットを検索しますが、それについては何も考えていませんでした。

ご協力いただければ幸いです。

+0

setonclick listenerを試して、 'spin.setSelection(20);'を入れてください。 –

+0

setOnClickリスナーはそのために働いていませんでした –

答えて

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

良い解決策。しかし、1つの問題があります。私が値を選択せず​​にドロップダウンを閉じると、デフォルトは20に設定されます。 – ketan

0

Shrenikシャーの答えを使用していいです。しかし、デフォルトの項目ではこれを使用します。

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

関連する問題