我的活动中有一个编辑文本。我正在手动输入数字但是
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和多个选定数字中删除单个数字的正确逻辑。
由于
答案 0 :(得分:3)
delete
接收start作为第一个参数,结束为second,而不是相反。
答案 1 :(得分:0)
可能是错误的错误mystart或myend(可能是这个)比numberText.lenght()更大或更闷。
尝试将一个Log.d(“”,“”)与文本,mystart和myend的长度放在一起,并检查是否需要myend -1或类似的东西。