您的位置:首页 > 移动开发 > Android开发

Android下edittext限制文本指定位置数字不能超出多少

2017-12-26 13:47 387 查看
开发中需要做一个时间输入,但是时间不能超出23:59分

逻辑分析:

第一位和第二位是小时。第一位只能为0、1、2

而且小时必须小于24

第三位和第四位是分钟 不能超出59

只需要现在第三位不大于5即可实现控制

et_visit_time.addTextChangedListener(new TextWatcher() {//设置时间输入限制,对时间做一个限制

private int beforlen = 0;
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
if (s.equals("")) {
return;
}
LogUtil.log(tag, "afterTextChanged" + s);
if (s.length() > beforlen) {// 根据位数判断增加的数字
//                  LogUtil.log(tag, "增加");
if (s.length() == 1) {// 第一位
if ((Integer.valueOf(s.toString()) > 2)) {
et_visit_time.setText("");
} else {
beforlen = s.length();
}
} else if (s.length() == 2) {
if ((Integer.valueOf(s.toString()) > 23)) {
et_visit_time.setText(s.subSequence(0, 1));
} else {
beforlen = s.length();
}
} else if (s.length() == 3) {
String min = s.subSequence(2, 3).toString();
LogUtil.log(tag, "fe" + min);
if ((Integer.valueOf(min) > 5)) {
et_visit_time.setText(s.subSequence(0, 2));
} else {
beforlen = s.length();
}
} else if (s.length() == 4) {
beforlen = s.length();
}

} else {
//                  LogUtil.log(tag, "删减");
beforlen = s.length();
et_visit_time.setSelection(beforlen);
}
}
});


et_visit_time.setText调用此方法后,光标会自动定位到最前面,需要下面的处理

et_visit_time.setSelection(beforlen);此方法可以让光标移到最后的输入位置

下面是XML片段

<EditText
android:id="@+id/ed_visit_time_id"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:gravity="bottom"
android:imeOptions="actionNext"
android:inputType="number"
android:maxLength="4"
android:singleLine="true"
android:textSize="18sp" />


我使用的方法显示的是1230代表了12:30,如果需要加冒号可以自行在代码中添加即可,此方法使用于数字限制,数字约定等的实现,如果有什么实际需求还是根据实际需求做修改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐