为android创建一个自定义输入类型



我的要求是,用户应该只能输入数字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);
}

相关内容

  • 没有找到相关文章

最新更新