0

我的要求是,用户应该只能输入 0 到 9 的数字,并且每 4 个字符后,edittext 会自动附加一个“-”符号。用户应该不能删除 edittext 的任何部分除了最后。请建议锄头这样做。

用户应该不能将光标移动到键入文本中间的任何位置,也不能将其删除。如何做到这一点?当用户移动光标位置时调用什么事件?

4

2 回答 2

2

您的第一个要求是 0-9 仅通过在 XML 用户类型编号中设置编辑文本属性来满足,并在编辑文本对象中设置文本观察器侦听器中的文本计数并计算单词,您可以在此处附加“-”字符。

于 2011-04-06T07:00:16.197 回答
0

我找到了解决问题的方法:用户不应该将光标移动到键入文本中间的任何位置。我们需要扩展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);
}
于 2011-11-23T09:10:07.013 回答