我的要求是,用户应该只能输入数字0到9,并且在每4个字符之后,一个"-"符号会自动追加到edittext。用户不应该能够删除编辑文本的任何部分,除了末尾。请建议怎么做。
用户不应该将光标移动到输入文本中间的任何地方,并且能够删除它。如何做到这一点?当用户移动光标位置时调用什么事件?
您的第一个要求是0-9是通过设置编辑文本属性在XML用户类型数字只满足要在edit-text set中对文本进行计数在edit-text object中对文本进行计数你可以添加"-"字符
我找到了一个解决我的问题的方法:用户不应该能够将光标移动到输入文本中间的任何地方。我们需要扩展EditText
并添加覆盖以下函数:
@Override
protected void onSelectionChanged(int selStart, int selEnd) {
// TODO Auto-generated method stub
// this method will check if the cursor is moved. if yes then bring back
// the cursor to the end so that the user cannot delete anythign from
// the middle of the text(here sub id). Any editing will only be
// possible at the end of the text
if (selStart == selEnd) {
int length = getText().toString().length();
setSelection(length);
}
super.onSelectionChanged(selStart, selEnd);
}