设置EditText输入的文字全部变成大写或小写
(推荐)方法1
进行大小写转换
开始的时候想用TextWatch的,但是发现他监听的事件会重复监听,导致很卡.如果先移除监听,改了再添加,光标的位置也会导致越界,可能我不会写吧,反正觉得很麻烦.后来上网一查,有更方便的方法,还可以很方便的抽出来重用.
public class AllCapTransformationMethod extends ReplacementTransformationMethod {
private char[] lower = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
private char[] upper = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
private boolean allUpper = false;
public AllCapTransformationMethod(boolean needUpper) {
this.allUpper = needUpper;
}
@Override
protected char[] getOriginal() {
if (allUpper) {
return lower;
} else {
return upper;
}
}
@Override
protected char[] getReplacement() {
if (allUpper) {
return upper;
} else {
return lower;
}
}
}
到时要使用的时候,就给EditText设好参数就可以了,像下面这样就可以自动变大写了.false就是小写
editText.setTransformationMethod(new AllCapTransformationMethod(true));
参考:https://blog.csdn.net/tempersitu/article/details/51741541
注意:这种方法只是给显示给用户是大写,实质上直接获取的时候还是小写
所以如果需要大写,需要转换下:
editText.getText().toString().toUpperCase()
方法2
监听文字变化
etCarNumber.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {//下面这种方法才是真正的将输入的小写字母转换为大写字母etCarNumber.removeTextChangedListener(this);etCarNumber.setText(s.toString().toUpperCase());//在输入完毕后定位到光标的末尾//mEdtCarNo.setSelection(s.length());/**在输入完毕后定位到当前修改的末尾 = start + count*/etCarNumber.setSelection(start+count);etCarNumber.addTextChangedListener(this);}@Overridepublic void afterTextChanged(Editable s) {}});
。。。
设置EditText输入的文字全部变成大写或小写相关推荐
- 设置EditText输入的文字全部变成大写或小写方案总结
1.通过setFilters方法,设置输入变大写 edittext.setFilters(new InputFilter[] {new InputFilter.AllCaps()}); 2.通过set ...
- AndroidStudio设置EditText输入的文字全部变成大写或小写
其中一个方法 调用EditText对象的setTransformationMethod()方法 //对编辑框内容进行转换的操作,小写换成大写mEdit.setTransformationMethod( ...
- 【Android】设置EditText输入类型和内容长度
1.设置输入类型 设置EditText输入类型主要有两种方法,一种是使用EditText的setInputType()方法,另一种是在布局文件中使用android:inputType属性来设置. (1 ...
- Android设置EditText输入类型:setInputType()方法和android:inputType属性
需求: 本次需求是做密码输入的隐藏.显示. 过程: 时间太久,很多属性已经记不太清楚了,比较纠结,所以整合下属性. 结果: 布局文件------------------------------ < ...
- 【matlab】输入一字符串,字母大写变小写,小写变大写。
从键盘输入一个由字母构成的字符串,要求大写变小写,小写变大写输出.(例:若输入为"asdFGH",则输出为"ASDfgh") 因为matlab也是新学,就在网上 ...
- Android开发之EditText输入显示文字hint大小设置
我们先来看下图: 这xml预览图 我们再来看下效果图: 我们来看下如何做到的: 很简单直接上代码 String hintStr = "输入时长";SpannableString s ...
- 输入字符串,统计其中大写,小写字母,数字,其他字符。
import java.util.*; public class QQQ { public static void main(String[] args) { Scanner ...
- EditText输入类型InputType值
开发过程中,我们经常使用到EditText控件,并且会根据各种需求设置它的输入类型.设置EditText输入类型主要有两种方法,一种是使用EditText的setInputType()方法,另一种是在 ...
- android设置输入框输入字符限制,Android EditText限制输入字符的方法总结
Android EditText限制输入字符的方法总结 最近项目要求限制密码输入的字符类型, 例如不能输入中文. 现在总结一下EditText的各种实现方式, 以比较各种方法的优劣. 第一种方式 ...
最新文章
- 帝国cms 标签php,帝国cms常用标签总结
- CentOS7下Django安装
- 2021-11-04Oracle19c 图形化安装,在windoes上)
- 用c语言实现0到59的数码管,跪求单片机0~99数码管显示用C语言编写的程序
- PyTorch中使用指定的GPU
- 【算法系列之十二】最接近的三数之和
- python定义字体颜色_windows print 自定义字体颜色【python】
- 现在时的条件句_57
- MATLAB产生线性等分量函数 linspace
- java遍历session_java中遍历session问题
- spring boot 发邮件
- [多媒体] m3u8简介
- 基于Python+Opencv的银行卡号识别系统(附完整代码)
- 马化腾:创建生物型组织,让企业组织自我进化
- 2018-2019赛季多校联合新生训练赛第四场 18-12-09
- Linux怎么彻底删除用户
- 信源编码算法(费诺编码哈夫曼编码)
- Packet Tracer - 排除 HSRP 故障
- Bark to Unlock CodeForces - 868A
- VC++实现电脑睡眠/休眠/锁定/关闭屏幕