为android创建自定义输入类型

时间:2011-04-06 06:51:23

标签: android-edittext android-input-method textview android

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

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

2 个答案:

答案 0 :(得分:2)

您的第一个要求是0-9仅通过在XML用户类型编号中设置编辑文本属性来实现 并在编辑文本设置文本观察者监听器中计算文本,编辑文本对象并计算单词,然后在那里添加“ - ”字符。

答案 1 :(得分: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);
}