Android InputType詳解


  1. android:inputType  

    •   如果設置android:inputType = "number",則默認彈出的輸入鍵盤為數字鍵盤,且輸入的內容只能為數字。

    • InputType文檔:http://cs.szpt.edu.cn/android/reference/android/text/InputType.html
  2. setRawInputType(int type)

    • 也就是說可以通過改變這個方法 達到改變 鍵盤的輸入顯示,比如數字鍵盤,字符鍵盤,但是這個方法不改變你原有的 設置的字符限制。
    1. 比如若設置如下,則只是默認彈出彈出數字鍵盤,但對內容沒有限制,此時任然可以輸入字符等其他內容。
      setRawInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_FLAG_SIGNED);
    2. 如果想設置允許輸入字符,但是希望默認彈出的鍵盤為數字鍵盤就可以這樣進行設置:
      setInputType(InputType.TYPE_CLASS_TEXT);
      setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
  3. setInputType(int type)

    •  效果跟android:inputType一樣
  4. 細節(坑)Java中需設置基本類型:

    1. 設置只允許數字輸入的InputType時,不能只單純設置如下,否則將無效。
      setInputType(InputType.TYPE_NUMBER_FLAG_SIGNED);或者setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);正確的做法是在前面加上TYPE_CLASS_NUMBER,如下:
      •   setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_VARIATION_NORMAL);//只允許輸入數字(正整數
        setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_FLAG_SIGNED);//只允許輸入數字(有符號整數
        setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_FLAG_DECIMAL);//只允許輸入數字(decimal,小數
         
  1.    其他輸入設置(如Text、Date、Time、Phone等)都有有相應的基本類型TYPE_CLASS_,使用時也需要在前面加上該基本類型TYPE_CLASS_,然后再加上需要的拓展類型,否則無效
      •   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM