編輯:關於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"
自動隱藏尾部溢出數據,一般用於文字內容過長一行無法全部顯示時。
Android實現環形進度條的效果圖如下:自定義控件:AttendanceProgressBar代碼如下:public class AttendanceProgressB
先看一下singleInstance啟動模式的說明:只有一個實例,並且這個實例獨立運行在一個activity任務棧中,這個task只有這個實例,不允許有別的Activit
我們在選購安卓手機的時候,參數中最容易犯暈的就是ROM和RAM了,許多朋友都不了解是什麼意思,廠家也借助這一點來大做文章,下面我就給大家來簡單的介紹一下其中
前言本次主要是實現一個Android應用,實現靜態廣播、動態廣播兩種改變 widget內容的方法,即在上篇博文中實驗的基礎上進行修改,所以此次實驗的重點是AppWidge