将光标移动到EditText的末尾?

22

我正在替换EditText中的一些文本,然后我想将光标移动到当前文本输入的末尾。它似乎有点起作用-当我再次开始输入时,光标似乎在EditText的末尾,但它不再闪烁/闪烁。我必须再次触摸EditText才能使光标重新开始闪烁。我做错了什么吗?

editText.setSelection(editText.getText().length()-1);
感谢。
3个回答

51

我用过的一个技巧是将文本设置为空字符串,然后再附加整个字符串。

例如:

String newtext = editText.getText().toString() + "the new text";
editText.setText("");
editText.append(newtext);

这对我来说似乎把光标放在了正确的位置。


很遗憾,我不能重置所有测试,因为我需要保留跨度。不过,在你完成上述操作后,光标是否再次闪烁呢? - user291701

23
EditText et = (EditText)findViewById(R.id.inbox);
et.setSelection(et.getText().length());

第二种方法

有一个名为append的函数可用于编辑框,它将字符串值附加到当前编辑框的值并将光标放置在该值的末尾。您可以将字符串值设置为当前编辑框的值本身,并调用append();

myedittext.append("current_this_edittext_string"); 

我认为第一种方法很整洁。 - Pooya

1

为了让用户更方便地修改编辑框中的整个文本(使其更加易于使用)

editText.selectAll(); //user can delete the whole text at one go
editText.requestFocus();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接