2

나는 비행기 좌석 번호 (17G, 5A 등)에 대한 사용자 입력을 받아야하는 EditText를 가지고 있습니다. 문제는 EditText 입력 유형을 텍스트로 설정하면 항상 텍스트가있는 소프트 키보드를 엽니 다. 그러나 입력은 항상 숫자로 시작되므로 키보드를 숫자로 전환하고 항상 되돌려 야합니다. 질문 : 숫자가있는 부분에 키보드를 열어서 키보드를 열려면 어떻게해야합니까? android : inputType = "numeric"을 넣으려고했는데 숫자 키보드 만 열었고 아무 텍스트도 입력 할 수 없습니다.Android EditText 소프트 키보드 질문

+0

이 http://stackoverflow.com/questions/4469936/getting-numeric-keyboard-default을 시도 – kannappan

+0

슬프게도 경우 유용 아무것도 없다. – user872423

답변

1

좌석 번호 (귀하의 예)가 다른 개수의 숫자를 가지므로 한 키보드 유형에서 다른 유형으로 변경할 때를 예측하기가 다소 어렵습니다.

그렇지 않으면, 당신은 다음과 같이 프로그램 글고 입력 유형을 변경할 수 있습니다 :

((EditText) mView.findViewById(R.id.et_seat_number)).addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) { 

     } 

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

     @Override 
     public void afterTextChanged(Editable editable) { 

      EditText etSeatNumber = (EditText) mView.findViewById(R.id.et_seat_number); 
      if(editable.length() > 2) 
       etSeatNumber.setInputType(InputType.TYPE_CLASS_NUMBER); 
      else{ 
       etSeatNumber.setInputType(InputType.TYPE_CLASS_TEXT); 
      } 
     } 
    }); 

는 또한 키보드 입력 유형을 변경 softkeyboard IME 옵션을 사용할 수 있습니다. https://stackoverflow.com/a/40526750/6672482

관련 문제