Android InputType詳解

  1. android:inputType  

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

    • 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_,而後再加上須要的拓展類型,不然無效
      •   
相關文章
相關標籤/搜索