关于EditText输入密码时的限制
2016-07-06 09:49
190 查看
有的时候EditText输入的时候有一些限制:
如:输入内容时的一些限制
// 设置输入限制
Edittext.setKeyListener(new NumberKeyListener() {
@Override
public int getInputType() {
return InputType.TYPE_TEXT_VARIATION_PASSWORD;
}
@Override
protected char[] getAcceptedChars() {
char[] numberChars = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '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'};
return numberChars;
}
});
还有就是输入金额的限制:
这个是转载的,但是个人觉得很好用,分享给大家:
/**
* 控制输入金额为钱数的
*
* @author Administrator
*
*/
public class Money {
public static void setPricePoint(final EditText editText) {
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.toString().contains(".")) {
if (s.length() - 1 - s.toString().indexOf(".") > 2) {
4000
s = s.toString().subSequence(0, s.toString().indexOf(".") + 3);
editText.setText(s);
editText.setSelection(s.length());
}
}
if (s.toString().trim().substring(0).equals(".")) {
s = "0" + s;
editText.setText(s);
editText.setSelection(2);
}
if (s.toString().startsWith("0") && s.toString().trim().length() > 1) {
if (!s.toString().substring(1, 2).equals(".")) {
editText.setText(s.subSequence(0, 1));
editText.setSelection(1);
return;
}
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
}
}
之后只需将Money.setPricePoint(view);//此处的view就是EditText对象;
还有一点值得注意的就是要在xml文件中把EditText的
android:inputType="numberDecimal"设置上就实现保留两位小数如果想限制位数可以用
android:maxLength="int"进行限制
如:输入内容时的一些限制
// 设置输入限制
Edittext.setKeyListener(new NumberKeyListener() {
@Override
public int getInputType() {
return InputType.TYPE_TEXT_VARIATION_PASSWORD;
}
@Override
protected char[] getAcceptedChars() {
char[] numberChars = {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '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'};
return numberChars;
}
});
还有就是输入金额的限制:
这个是转载的,但是个人觉得很好用,分享给大家:
/**
* 控制输入金额为钱数的
*
* @author Administrator
*
*/
public class Money {
public static void setPricePoint(final EditText editText) {
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.toString().contains(".")) {
if (s.length() - 1 - s.toString().indexOf(".") > 2) {
4000
s = s.toString().subSequence(0, s.toString().indexOf(".") + 3);
editText.setText(s);
editText.setSelection(s.length());
}
}
if (s.toString().trim().substring(0).equals(".")) {
s = "0" + s;
editText.setText(s);
editText.setSelection(2);
}
if (s.toString().startsWith("0") && s.toString().trim().length() > 1) {
if (!s.toString().substring(1, 2).equals(".")) {
editText.setText(s.subSequence(0, 1));
editText.setSelection(1);
return;
}
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
}
}
之后只需将Money.setPricePoint(view);//此处的view就是EditText对象;
还有一点值得注意的就是要在xml文件中把EditText的
android:inputType="numberDecimal"设置上就实现保留两位小数如果想限制位数可以用
android:maxLength="int"进行限制
相关文章推荐
- HTTP深入浅出 http请求
- linux下crontab任务调度指令
- sql查询总结
- 1. 冒泡排序
- org.springframework.util.Assert
- 什么叫工作到位
- 通过ServiceManager统一管理aidl服务
- JVM运行时数据区域
- 数组指针与指针数组
- 1313. 老曹骑士 TJ
- properties 配置文件如何换行
- Android短信验证
- Android 发布版本名字
- Java Web学习总结(20)——基于ZooKeeper的分布式session实现
- POJ2533/hdoj1950【DP】
- 一篇文章,掌握所有开源数据库的现状
- [乐意黎转载]指甲缝下面有什么?
- ACM比赛中如何加速c++的输入输出?如何使cin速度与scanf速度相当?什么是最快的输入输出方法?,cinscanf
- 微信序列号生成器架构设计及演变
- Java Web学习总结(20)——基于ZooKeeper的分布式session实现