2

我有什麼樣的EditText應該獲取用戶輸入的飛機座位號(如17G,5A等) 問題是那麼我設置的EditText輸入類型爲文本,它總是打開軟鍵盤文本。 但是我的輸入始終以數字開頭,所以用戶必須將鍵盤切換爲數字並始終返回。 問題是如何設置鍵盤來打開數字所在部分的文本鍵盤? 我試着把android:inputType =「numeric」,但它只是打開數字鍵盤,並且不可能在之後輸入任何文本。的Android EditText上的軟鍵盤問題

+0

試試這個 http://stackoverflow.com/questions/4469936/getting-numeric-keyboard-default – kannappan

+0

可悲的是,其中是沒有什麼用處。 – user872423

回答

1

由於座位號(你的例子)將有不同數量的計數,它還挺很難猜測何時從一個鍵盤類型更改爲另一個。

否則,您可以以編程方式更改的EditText輸入類型是這樣的:

((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