我正在替换EditText中的一些文本,然后我想将光标移动到当前文本输入的末尾。它似乎有点起作用-当我再次开始输入时,光标似乎在EditText的末尾,但它不再闪烁/闪烁。我必须再次触摸EditText才能使光标重新开始闪烁。我做错了什么吗?
editText.setSelection(editText.getText().length()-1);
感谢。我正在替换EditText中的一些文本,然后我想将光标移动到当前文本输入的末尾。它似乎有点起作用-当我再次开始输入时,光标似乎在EditText的末尾,但它不再闪烁/闪烁。我必须再次触摸EditText才能使光标重新开始闪烁。我做错了什么吗?
editText.setSelection(editText.getText().length()-1);
感谢。我用过的一个技巧是将文本设置为空字符串,然后再附加整个字符串。
例如:
String newtext = editText.getText().toString() + "the new text";
editText.setText("");
editText.append(newtext);
这对我来说似乎把光标放在了正确的位置。
EditText et = (EditText)findViewById(R.id.inbox);
et.setSelection(et.getText().length());
第二种方法
有一个名为append的函数可用于编辑框,它将字符串值附加到当前编辑框的值并将光标放置在该值的末尾。您可以将字符串值设置为当前编辑框的值本身,并调用append();
myedittext.append("current_this_edittext_string");
为了让用户更方便地修改编辑框中的整个文本(使其更加易于使用)
editText.selectAll(); //user can delete the whole text at one go
editText.requestFocus();