2017-03-05 1 views
0

안드로이드 XML 파일에 editText와 Spinner가 있습니다. 사용자 입력을 기반으로 EditText 및 Spinner의 값을 변경하려고합니다. 예를 들어 사용자가 EditText에 7,14,21,28을 입력하고 Spinner에서 Days를 선택하면 값이 자동으로 1,2,3,4 Weeks로 변경됩니다. 가능한 조합에 대해서도 동일하게 적용됩니다.안드로이드에서 사용자 입력을 기반으로 EditText와 Spinner의 값을 변경하십시오.

  1. 24시간 - 1 일
  2. 7,14,21,28 일 - 1,2,3,4 주
  3. 4,8,12,16,20,24,28 주 - 1 , 2,3,4,5,6,7 개월

아래에서 EditText 및 회 전자 코드 스 니펫을 찾아보십시오.

글고 :

<android.support.design.widget.TextInputEditText 
       android:id="@+id/frequencyDaysEditText" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="@string/frequencyTime" 
       android:inputType="number" /> 

회 전자 :

<Spinner 
      android:id="@+id/frequencySpinner" 
      android:layout_width="0dp" 
      android:layout_gravity="center" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.2" 
      android:entries="@array/frequencyArray" /> 

주파수 배열 값이 : {시간, 일, 주 및 달}.

참고 : 나는 EditText의 범위를 1-30로 제한했습니다. 또한 사용자가 값 선택을 완료하고 사용자가 제출 버튼을 클릭 할 때까지 기다리지 않을 때이 기능이 필요합니다.

Java에서 위에서 설명한대로 기능을 수행 할 유효성 검사 함수를 작성하려고합니다. 답변에 대한 도움을주십시오.

답변

0
EditText edittext = (EditText) findViewById(R.id.frequencyDaysEditText); 
Spinner spinner = (Spinner) findViewById(R.id.frequencySpinner); 

edittext.addTextChangedListener(new TextWatcher() { 

    @Override 
    public void afterTextChanged(Editable s) {} 

    @Override  
    public void beforeTextChanged(CharSequence s, int start, 
     int count, int after) { 
    } 

    @Override  
    public void onTextChanged(CharSequence s, int start, 
     int before, int count) { 

     if(s.length() != 0) 
     { 
      String name= null; 
      if(spinner != null && spinner .getSelectedItem() !=null 
      { 
       name = (String)spinner.getSelectedItem(); 

        //Do what you want to do here 

      } else { 

      } 
     } 
    } 
}); 
관련 문제