设置 EditText 只能接收特定类型数据

from (http://wenku.baidu.com/view/d392221f5f0e7cd18425368e.html

如何设置

EditText,使得只能输入数字或者某些字母呢?

一、设置EditText,只输入数字:

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

et_1.setKeyListener(new

DigitsKeyListener(false,true));

 

 

方法2:在EditText中设置属性,android:numeric="integer"即只能输入整数,如下

<EditText

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;

}

@Override

public

int

getInputType()

{

//

TODO

Auto-generated

method

stub

return

android.text.InputType.TYPE_CLASS_PHONE;

}

});

 

 

 

二、设置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

KeyListener

DigitsKeyListener

numericOnlyListener

=

new

DigitsKeyListener(false,true);

et.setKeyListener(numericOnlyListener);

//

方法

2:

EditText

设置一个

NumberKeyListener,

然后重写

getAcceptedChars()

方法和

getInputType()

方法

et.setKeyListener(new

NumberKeyListener()

{

@Override

protected

char[]

getAcceptedChars()

{

return

new

char[]

{

'1',

'2',

'3',

'4',

'5',

'6',

'7',

'8','9',

'0'

};

}

@Override

public

int

getInputType()

{

//

TODO

Auto-generated

method

stub

return

android.text.InputType.TYPE_CLASS_PHONE;

}

});

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

01.EditText

et;

02.et

=

(EditText)

findViewById(R.id.et);

03.//

方法

1:

建立一个

DigitsKeyListener,

然后把它设为你的

EditText

KeyListener

04.DigitsKeyListener

numericOnlyListener

=

new

DigitsKeyListener(false,true);

05.et.setKeyListener(numericOnlyListener);

 

 

 

 

06.//

方法

2:

EditText

设置一个

NumberKeyListener,

然后重写

getAcceptedChars()

方法和

getInputType()

方法

07.et.setKeyListener(new

NumberKeyListener()

{

08.

@Override

09.

protected

char[]

getAcceptedChars()

{

10.

return

new

char[]

{

'1',

'2',

'3',

'4',

'5',

'6',

'7',

'8','9',

'0'

};

11.

}

12.

@Override

13.

public

int

getInputType()

{

14.

//

TODO

Auto-generated

method

stub

15.

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"

自动隐藏尾部溢出数据,

一般用于文字内容过长一行无法全部显示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值