android 设置输入类型,Android设置EditText输入类型:setInputType()方法和android:inputType属性...

需求:本次需求是做密码输入的隐藏、显示。

过程:时间太久,很多属性已经记不太清楚了,比较纠结,所以整合下属性。

结果:

布局文件------------------------------

style="@style/login_shape"

android:layout_marginTop="@dimen/size_15">

style="@style/wrap_content"

android:layout_gravity="center_vertical"

android:background="@drawable/icon_password" />

android:id="@+id/password"

style="@style/login_right_title"

android:hint="请输入密码"

android:imeActionLabel="登录"

android:imeOptions="actionDone"

android:inputType="numberPassword"

android:maxLength="20" />

android:id="@+id/cbShowPassword"

android:layout_width="23dp"

android:layout_height="23dp"

android:layout_gravity="center_vertical"

android:background="@drawable/selector_login_change_psw"

android:button="@null" />

selector文件-----------------------------------

java文件---------------------------------

/**

* 改变密码状态

*/

private void changePasswordStatus() {

cbShowPassword.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

@Override

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

LogUtil.d("Cc", "切换密码状态:" + isChecked);

if (isChecked) {

// 输入一个对用户可见的密码

// mPasswordView.setTransformationMethod(HideReturnsTransformationMethod.getInstance());

mPasswordView.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

} else {

// 输入一个对用户不可见的密码

//mPasswordView.setTransformationMethod(PasswordTransformationMethod.getInstance());

mPasswordView.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD|InputType.TYPE_CLASS_TEXT);

}

}

});

}

在Android开发过程中,我们经常使用到EditText控件,并且会根据各种需求设置它的输入类型。设置EditText输入类型主要有两种方法,一种是使用EditText的setInputType()方法,另一种是在布局文件中使用android:inputType属性来设置。

下面将介绍这两种方法:

(1)使用EditText的setInputType()方法设置输入类型:

EditText editText;

//输入类型为没有指定明确的类型的特殊内容类型

editText.setInputType(InputType.TYPE_NULL);

//输入类型为普通文本

editText.setInputType(InputType.TYPE_CLASS_TEXT);

//输入类型为数字文本

editText.setInputType(InputType.TYPE_CLASS_NUMBER);

//输入类型为电话号码

editText.setInputType(InputType.TYPE_CLASS_PHONE);

//输入类型为日期和时间

editText.setInputType(InputType.TYPE_CLASS_DATETIME);

//输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,允许输入日期和时间。

editText.setInputType(InputType.TYPE_DATETIME_VARIATION_NORMAL);

//输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,只允许输入一个日期。

editText.setInputType(InputType.TYPE_DATETIME_VARIATION_DATE);

//输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,只允许输入一个时间。

editText.setInputType(InputType.TYPE_DATETIME_VARIATION_TIME);

//输入类型为决定所给文本整体类的位掩码

editText.setInputType(InputType.TYPE_MASK_CLASS);

//输入类型为提供附加标志位选项的位掩码

editText.setInputType(InputType.TYPE_MASK_FLAGS);

//输入类型为决定基类内容变化的位掩码

editText.setInputType(InputType.TYPE_MASK_VARIATION);

//输入类型为小数数字,允许十进制小数点提供分数值。

editText.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);

//输入类型为数字是带符号的,允许在开头带正号或者负号

editText.setInputType(InputType.TYPE_NUMBER_FLAG_SIGNED);

//输入类型为{@link#TYPE_CLASS_NUMBER}的缺省变化值:为纯普通数字文本

editText.setInputType(InputType.TYPE_NUMBER_VARIATION_NORMAL);

//输入类型为{@link#TYPE_CLASS_NUMBER}的缺省变化值:为数字密码

editText.setInputType(InputType.TYPE_NUMBER_VARIATION_PASSWORD);

//输入类型为自动完成文本类型

editText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);

//输入类型为自动纠正文本类型

editText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_CORRECT);

//输入类型为所有字符大写

editText.setInputType(InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS);

//输入类型为每句的第一个字符大写

editText.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);

//输入类型为每个单词的第一个字母大写

editText.setInputType(InputType.TYPE_TEXT_FLAG_CAP_WORDS);

//输入多行文本

editText.setInputType(InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE);

//进行输入时,输入法无提示

editText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

//输入一个短的,可能是非正式的消息,如即时消息或短信。

editText.setInputType(InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE);

//输入长内容,可能是正式的消息内容,比如电子邮件的主体

editText.setInputType(InputType.TYPE_TEXT_VARIATION_LONG_MESSAGE);

//输入文本以过滤列表等内容

editText.setInputType(InputType.TYPE_TEXT_VARIATION_FILTER);

//输入一个电子邮件地址

editText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);

//输入电子邮件主题行

editText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_SUBJECT);

//输入一个密码

editText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);

//输入老式的普通文本

editText.setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL);

//输入人名

editText.setInputType(InputType.TYPE_TEXT_VARIATION_PERSON_NAME);

//输入邮寄地址

editText.setInputType(InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS);

//输入语音发音输入文本,如联系人拼音名称字段

editText.setInputType(InputType.TYPE_TEXT_VARIATION_PHONETIC);

//输入URI

editText.setInputType(InputType.TYPE_TEXT_VARIATION_URI);

//输入对用户可见的密码

editText.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

//输入网页表单中的文本

editText.setInputType(InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT);

//输入网页表单中的邮件地址

editText.setInputType(InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS);

//输入网页表单中的密码

editText.setInputType(InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD);

(2)在布局文件中使用android:inputType属性来设置:

//输入类型为没有指定明确的类型的特殊内容类型

android:inputType="none"

//输入类型为普通文本

android:inputType="text"

//输入类型为数字文本

android:inputType="number"

//输入类型为电话号码

android:inputType=”phone”

//输入类型为日期和时间

android:inputType=”datetime”

//输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,只允许输入一个日期。

android:inputType=”date”

//输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,只允许输入一个时间。

android:inputType=”time”

//输入类型为小数数字,允许十进制小数点提供分数值。

android:inputType="numberDecimal"

//输入类型为数字是带符号的,允许在开头带正号或者负号

android:inputType="numberSigned"

//输入类型为数字密码

android:inputType="numberPassword"

//输入类型为自动完成文本类型

android:inputType="textAutoComplete"

//输入类型为自动纠正文本类型

android:inputType="textAutoCorrect"

//输入类型为所有字符大写

android:inputType="textCapCharacters"

//输入类型为每句的第一个字符大写

android:inputType="textCapSentences"

//输入类型为每个单词的第一个字母大写

android:inputType="textCapWords"

//输入法多行文本

android:inputType="textImeMultiLine"

//进行输入时,输入法无提示

android:inputType="textNoSuggestions"

//输入一个短的,可能是非正式的消息,如即时消息或短信。

android:inputType="textShortMessage"

//输入长内容,可能是正式的消息内容,比如电子邮件的主体

android:inputType="textLongMessage"

//输入文本以过滤列表等内容

android:inputType="textFilter"

//输入一个电子邮件地址

android:inputType="textEmailAddress"

//输入电子邮件主题行

android:inputType="textEmailSubject"

//输入一个密码

android:inputType="textPassword"

//输入对用户可见的密码

android:inputType="textVisiblePassword"

//输入人的姓名

android:inputType="textPersonName"

//输入邮寄地址

android:inputType="textPostalAddress"

//输入语音发音输入文本,如联系人拼音名称字段

android:inputType="textPhonetic"

//输入URI

android:inputType="textUri"

//输入网页表单中的文本

android:inputType="textWebEditText"

//输入网页表单中的邮件地址

android:inputType="textWebEmailAddress"

//输入网页表单中的密码

android:inputType="textWebPassword"

相关源码,可以在开发工具中阅读。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值