编辑文本中的IndexOutOfBoundsException for android

时间:2011-08-25 07:27:42

标签: android

我的活动中有一个编辑文本。我正在手动输入数字但是

   int mystart = destinationNumber.getSelectionStart();
   int myend = destinationNumber.getSelectionEnd();
   numberText.getText().replace(Math.min(mystart, myend), Math.max(mystart, myend),
                        "1", 0, 1);

根据光标位置输入正常。

我的acitivity中有一个删除按钮,它根据光标位置删除单个字符。

numberText.getText().delete(myend - 1, mystart);

但是当我选择整个文本并调用delete方法时,这个逻辑不能正常工作它会给我IndexOutOfBoundsException或者我选择4-5位并调用此删除。

我想要与android联系人拨号盘号输入字段相同的功能。有人可以帮我弄清楚从edittext和多个选定数字中删除单个数字的正确逻辑。

由于

2 个答案:

答案 0 :(得分:3)

delete接收start作为第一个参数,结束为second,而不是相反。

答案 1 :(得分:0)

可能是错误的错误mystart或myend(可能是这个)比numberText.lenght()更大或更闷。

尝试将一个Log.d(“”,“”)与文本,mystart和myend的长度放在一起,并检查是否需要myend -1或类似的东西。