第18讲UI常用组件之EditText
三、文本输入框EditText
EditTex类继承自TextView。EditText是接受用户输入信息的最重要控件。在html当中,相当于<input type=”text” />
<EditText
android:id ="@+id/esitText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="请输入数字!!"
>
</EditText>
android:maxLength="10" //控制最大可输入长度
android:ems="10" //控制输入框显示长度,但是输入长度不限
android:hint="请输入数字!" //在文本框为空时显示的文字提示信息
android:textColorHint="#00ff00" //设置提示信息的文字颜色
android:numeric="integer" //只允许输入数字,有三种属性integer(正整数),"signed"(整数),"decimal"(小数)
android:digits="123abc+.*/" //只允许输入”123abc+.*” 所罗列的数字符号,如果输入其它将不予以显示/
android:phoneNumber="true" //限制输入框中只能输入手机号码
android:password="true" //限制输入框中输入的任何内容将以"*"符号来显示
限制EditText内容的特殊方式1:
方法一、利用代码控制输入参数 addTextChangedListener
(假设,要求输入字符不能包含数字4)
EditText editText=(EditText)findViewById(R.id.editText1);
editText.addTextChangedListener(newTextWatcher() {
public void onTextChanged(CharSequence arg0, int arg1, int arg2, intarg3) {
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {
}
public void afterTextChanged(Editable s) {
String string=s.toString(); //将输入的字符s转换为String
if(string.indexOf("4")!= -1) { //判断输入的字符是否含有4
Toast.makeText(getApplicationContext(), "不能输入数字4 !",0).show();
s.clear(); //清空输入
}
}
});
限制EditText内容的特殊方式2:
方法二:利用设置filter的方法控制输入参数
(如果输入数字1,则该字符被汉字“一”代替,如果输入数字2,则该字符被汉字“二”代替,并显示)
import android.text.Spanned;
EditText editText2=(EditText)findViewById(R.id.editText2);
editText2.setFilters(new InputFilter[]{
new InputFilter.LengthFilter(5), //最大能输入5个字符
new InputFilter.AllCaps(), //将所有输入的小写字母变成大写字母
new InputFilter() { //设置自己的filter
publicCharSequence filter(CharSequence source, intstart, int end, Spanned dst, int dstart, int dend) {
// source代表你输入的文字;start,end分别为开始位置和结束位置
//dest为现在显示的字符串;dstart,dend为光标所在字符串的位置;
if("1".equals(source.toString())){ //如果输入数字1,则该字符被汉字“一”代替,并显示
return "一";
}elseif("2".equals(source.toString())){
return"二";
}else{
return null;
}
}
}
});