开发过程中,EditText是和用户交互的一个重要过程,总是不可少的,有些时候又不想让用户任意输入内容,减少不必要的麻烦(bug),这是我们往往有两种方案,1:自定义键盘;2:制定输入限制规则;说白了,让你输入啥你就得输入啥;
一种方案是在布局文件设置:
android:inputType="textPassword"
android:digits="0123456789abcdefghigklmnopqrstuvwxyz"
另一种是在代码里面设置InputType:
public interface InputType {
int TYPE_CLASS_DATETIME = 4;
int TYPE_CLASS_NUMBER = 2;
int TYPE_CLASS_PHONE = 3;
int TYPE_CLASS_TEXT = 1;
int TYPE_DATETIME_VARIATION_DATE = 16;
int TYPE_DATETIME_VARIATION_NORMAL = 0;
int TYPE_DATETIME_VARIATION_TIME = 32;
int TYPE_MASK_CLASS = 15;
int TYPE_MASK_FLAGS = 16773120;
int TYPE_MASK_VARIATION = 4080;
int TYPE_NULL = 0;
int TYPE_NUMBER_FLAG_DECIMAL = 8192;
int TYPE_NUMBER_FLAG_SIGNED = 4096;
int TYPE_NUMBER_VARIATION_NORMAL = 0;
int TYPE_NUMBER_VARIATION_PASSWORD = 16;
int TYPE_TEXT_FLAG_AUTO_COMPLETE = 65536;
int TYPE_TEXT_FLAG_AUTO_CORRECT = 32768;
int TYPE_TEXT_FLAG_CAP_CHARACTERS = 4096;
int TYPE_TEXT_FLAG_CAP_SENTENCES = 16384;
int TYPE_TEXT_FLAG_CAP_WORDS = 8192;
int TYPE_TEXT_FLAG_IME_MULTI_LINE = 262144;
int TYPE_TEXT_FLAG_MULTI_LINE = 131072;
int TYPE_TEXT_FLAG_NO_SUGGESTIONS = 524288;
int TYPE_TEXT_VARIATION_EMAIL_ADDRESS = 32;
int TYPE_TEXT_VARIATION_EMAIL_SUBJECT = 48;
int TYPE_TEXT_VARIATION_FILTER = 176;
int TYPE_TEXT_VARIATION_LONG_MESSAGE = 80;
int TYPE_TEXT_VARIATION_NORMAL = 0;
int TYPE_TEXT_VARIATION_PASSWORD = 128;
int TYPE_TEXT_VARIATION_PERSON_NAME = 96;
int TYPE_TEXT_VARIATION_PHONETIC = 192;
int TYPE_TEXT_VARIATION_POSTAL_ADDRESS = 112;
int TYPE_TEXT_VARIATION_SHORT_MESSAGE = 64;
int TYPE_TEXT_VARIATION_URI = 16;
int TYPE_TEXT_VARIATION_VISIBLE_PASSWORD = 144;
int TYPE_TEXT_VARIATION_WEB_EDIT_TEXT = 160;
int TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS = 208;
int TYPE_TEXT_VARIATION_WEB_PASSWORD = 224;
}
一脸蒙逼,这是啥?难道要一个一个试试?
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" 时间键盘
这就不用纠结了,那里需要用哪里!