Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android代碼設置EditText只輸入數字、字母

android代碼設置EditText只輸入數字、字母

編輯:關於Android編程



如何設置EditText,使得只能輸入數字或者某些字母呢?

一、設置EditText,只輸入數字:

方法1:直接生成DigitsKeyListener對象就可以了。

et_1.setKeyListener(new
DigitsKeyListener(false,true));

方法2:在EditText中設置屬性,android:numeric="integer"即只能輸入整數,如下

android:singleLine="true"

android:numeric="integer"

/>

方法3:新建一個char[],在裡面添加允許輸入的字符。如下

editText.setKeyListener(new
NumberKeyListener(){

protected char[] getAcceptedChars()

{

char[]
numberChars[]={'1','2','3','4','5','6','7','8','9','0',};

return numberChars;

}

});

二、設置EditText只能輸入某些字母,如下面設置edtitext只能輸入A—N,a—n這些字母。方法如下:

editText.setKeyListener(new
NumberKeyListener(){

protected char[] getAcceptedChars()

{

char[]
numberChars[]={'a,'b','c','d','e','f','A','B','C','D'};

return numberChars;

}

});

EditText et;et = (EditText) findViewById(R.id.et);// 方法1:建立一個DigitsKeyListener,然後把它設為你的EditText的KeyListenerDigitsKeyListener numericOnlyListener = new
DigitsKeyListener(false,true);et.setKeyListener(numericOnlyListener);//
方法2:為EditText設置一個NumberKeyListener,然後重寫getAcceptedChars()方法和getInputType()方法et.setKeyListener(new NumberKeyListener() {@Overrideprotected char[] getAcceptedChars() {return new char[] { '1', '2', '3', '4', '5', '6', '7', '8','9', '0'
};}@Overridepublic int getInputType() {// TODO Auto-generated method stubreturn android.text.InputType.TYPE_CLASS_PHONE;}});

--------------------------------------------------------------------------------------------

01.EditText et;02.et = (EditText) findViewById(R.id.et);03.// 方法1:建立一個DigitsKeyListener,然後把它設為你的EditText的KeyListener04.DigitsKeyListener numericOnlyListener = new
DigitsKeyListener(false,true);05.et.setKeyListener(numericOnlyListener);06.//
方法2:為EditText設置一個NumberKeyListener,然後重寫getAcceptedChars()方法和getInputType()方法07.et.setKeyListener(new NumberKeyListener() {08. @Override09. protected char[] getAcceptedChars() {10. return new char[] { '1', '2', '3', '4', '5', '6', '7', '8','9',
'0' };11. }12. @Override13. public int getInputType() {14. // TODO Auto-generated method stub15. return android.text.InputType.TYPE_CLASS_PHONE;16. }17.});

小結:

第一種可以輸入小數。

第二種由於設置了TYPE_CLASS_PHONE所以只能輸入整數。且比較靈活。

============================================

很多網友可能在開發Android時發現EditText有時候需要限制用戶輸入的內容,通常我們可以使用正則表達式直接限制,但是Android
已經為我們准備好了EditText的輸入類型,這樣的比正則要有以下幾點優勢:

1. 開發更簡單,執行速度高效。 2.
輸入法默認會根據情況變動,比如說設置為numeric後輸入法會自動僅顯示數字,不會出現Qwerty中的字母。

下面我們通過EditText的layout
xml文件中的相關屬性來實現:

1. 密碼框屬性 android:password="true"
這條可以讓EditText顯示的內容自動為 星號,輸入時內容會在1秒內變成*字樣。

2. 純數字 android:numeric="true"
這條可以讓輸入法自動變為數字輸入鍵盤,同時僅允許0-9的數字輸入

3. 僅允許 android:capitalize="cwj1987"
這樣僅允許接受輸入cwj1987,一般用於密碼驗證

下面是一些擴展的風格屬性

android:editable="false"
設置EditText不可編輯

android:singleLine="true"
強制輸入的內容在單行

android:ellipsize="end"
自動隱藏尾部溢出數據,一般用於文字內容過長一行無法全部顯示時。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved