2017-02-27 6 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
수단에서 클릭 기본 드롭 위치 시작에 시작하려는 0 이제

spin.setSelection(0); 

에 선택의 (20) 그리고 사용자로부터 위나 아래로 스크롤하여 값을 변경할 수 있습니다.

로트를 많이 검색하지만 그와 관련하여 아무런 아이디어도 얻지 못했습니다.

도움이된다면 크게 감사하겠습니다.

+0

setonclick listener를 시도하고'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 샤의 답변을 사용하는 것이 좋다. 그러나 기본 항목에 대해서는 이것을 사용하십시오.

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; 
      } 
     }); 

참고 : 우리는 기본 선택으로 널을 사용할 수 없습니다. '하나 선택'과 같은 값을 에 추가해야합니다.

+0

감사합니다. CoDFather. 그러나 onNothingSelected는 호출되지 않습니다. 사이드 스피너를 클릭하면 나는 아무것도 선택하지 않았다. 'setSelection (0)' – ketan