EditText的常用点,输入控制(包含inputType)

部分内容参考:http://www.cnblogs.com/hnrainll/archive/2012/11/24/2786159.html

控制EditText的输入的时候:

1)常用设置

android:hint="请输入数字!"//设置显示默认的提示信息
android:focusable="false"// 无法输入内容 android:singleLine="true"//设置单行输入,一旦设置为true,则文字不会自动换行。 android:textColor = "#ff8c00"//字体颜色 android:textStyle="normal"//正常字体 ="bold" //粗体 ="italic"//斜体 ="bold|italic"//粗体+斜体 android:capitalize = "characters"//输入内容为大写字母(注意:可以用inputType的某个属性代替) android:textColorHighlight="#cccccc"//被选中文字的底色,默认为蓝色 android:textColorHint="#ffff00"//设置提示信息文字的颜色,默认为灰色 android:textScaleX="1.5"//控制字与字之间的间距 android:background="@null"//背景,这里没有,指透明 android:layout_gravity="center_vertical"//设置控件显示的位置:默认top,这里居中显示,还有bottom android:gray="top" //多行中指针在第一行第一位置 android:capitalize //首字母大写 android:phoneNumber //输入电话号码 android:autoLink=”all” //设置文本超链接样式当点击网址时,跳向该网址 android:cursorVisible //设定光标为显示/隐藏,默认显示。

 

2)inputType常用设置

android:inputType="textCapCharacters" 字母大写
android:inputType="textCapWords" 首字母大写
android:inputType="textCapSentences" 仅第一个字母大写
android:inputType="textMultiLine" 多行输入
android:inputType="textPassword" 密码
android:inputType="number" 数字
android:inputType="numberSigned" 带符号数字格式
android:inputType="numberDecimal" 带小数点的浮点格式
android:inputType="datetime" 时间日期
android:inputType="date" 日期键盘
android:inputType="time" 时间键盘

 

3)常用的数字输入设置:

android:numeric="integer"   //只可以输入正整数
android:numeric="decimal"  //可以输入小数
android:numeric="signed"   //表示可以输入整数(正整数或者负整数)

android:inputType="numberDecimal" //可以输入小数,正小数(即只可以加一个小数点的正数)
android:maxLength="11"   //最多可以输入11位数字
android:singleLine="true" //单行输入
android:password="true"   //密码输入框,可以使得输入的内容在1秒内变成*字样

android:inputType="number" //设置只能输入数字(相当于是输入正整数),并且默认的弹出框是数字弹出框

 4)EditText中,android:maxLines和android:minLines的区别:

例如:

android:maxLines="3" //使用maxLines的EditText最大行数为3行,当输入的内容超过3行后,它形状的大小不会根据输入内容的多少而改变,反正它显示的内容就是3行
//开始EditText里面没内容时,默认控件大小为1行
android:minLines="3" //使用minLines的EditText是至它至少显示3行内容(包括内容为空时)当输入的内容超过3行后,它形状的大小根据输入内容的多少而改变。

5)如何设置输入框只能输入指定的字符:

A:在EditText的XML中直接设置:

android:digits="0123456789xyzXYZ#*?"  //引号里面输入你想设置的输入内容

B:使用Java代码设置:

EditText.setKeyListener(new NumberKeyListener() {  
			    @Override  
			    protected char[] getAcceptedChars() {  
			        return new char[] { 'a', 'b', '3', '4', '5', '6', '7', '8','9',  };  
			    }  
			    @Override  
			    public int getInputType() {  
			        // TODO Auto-generated method stub   
			        return android.text.InputType.TYPE_CLASS_PHONE;
			    }  
			});  

android 中inputType详解:

android 1.5以后添加了软件虚拟键盘的功能,所以在输入提示中将会有对应的软键盘模式。
android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用。这也大大的方便的操作。有时需要虚拟键盘只为字符或只为数字。所以inputType尤为重要。
<EditText android:layout_width="fill_parent" android:layout_height="wrap_content"android:inputType="phone" />

//文本类型,多为大写、小写和数字符号。
    android:inputType="none"
    android:inputType="text"
    android:inputType="textCapCharacters" 字母大写
    android:inputType="textCapWords" 首字母大写
    android:inputType="textCapSentences" 仅第一个字母大写
    android:inputType="textAutoCorrect" 自动完成
    android:inputType="textAutoComplete" 自动完成
    android:inputType="textMultiLine" 多行输入
    android:inputType="textImeMultiLine" 输入法多行(如果支持)
    android:inputType="textNoSuggestions" 不提示
    android:inputType="textUri" 网址
    android:inputType="textEmailAddress" 电子邮件地址
    android:inputType="textEmailSubject" 邮件主题
    android:inputType="textShortMessage" 短讯
    android:inputType="textLongMessage" 长信息
    android:inputType="textPersonName" 人名
    android:inputType="textPostalAddress" 地址
    android:inputType="textPassword" 密码
    android:inputType="textVisiblePassword" 可见密码
    android:inputType="textWebEditText" 作为网页表单的文本
    android:inputType="textFilter" 文本筛选过滤
    android:inputType="textPhonetic" 拼音输入 //数值类型
    android:inputType="number" 数字
    android:inputType="numberSigned" 带符号数字格式
    android:inputType="numberDecimal" 带小数点的浮点格式
    android:inputType="phone" 拨号键盘
    android:inputType="datetime" 时间日期
    android:inputType="date" 日期键盘
    android:inputType="time" 时间键盘


遇到的一些情景:

一、项目需求是这样的,如果EditText上面已经被setText()内容,则需要禁止输入,防止它被修改。

解决:

1、根据判断条件,设置:

editText.setFocusable(true);或者editText.setFocusable(false);

2、手机软键盘是否可以开启:

利用 editText.setInputType(InputType.TYPE_NULL);来禁止手机软键盘。

editText.setInputType(InputType.TYPE_CLASS_TEXT);来开启软键盘。

二、输入框中,第一位不让输入”.“,如何判断?

if(StringUtils.equals(".", StringUtils.substring(edt.getText().toString(),0,1))){              //截取用户输入的内容的第一位,然后跟”.做比较“
			Toast.makeText(VisitInfo.this, "里程信息输入有误,请重新输入!",Toast.LENGTH_SHORT).show();
		}

 

posted @ 2014-10-10 13:00  叫我工作狂  阅读(5575)  评论(0编辑  收藏  举报