我正在更改keyListener上的EditText的值。
但是当我更改文本时,光标移动到EditText的开头。 我需要光标在文本的末尾。
如何将光标移动到EditText文本的末尾。
我正在更改keyListener上的EditText的值。
但是当我更改文本时,光标移动到EditText的开头。 我需要光标在文本的末尾。
如何将光标移动到EditText文本的末尾。
当前回答
在我的情况下,我创建了以下Kotlin ext.函数,可能对某人有用:
private fun EditText.focus(){
requestFocus()
setSelection(length())
}
然后按如下方式使用:
mEditText.focus()
其他回答
你也可以像这样把光标放在EditText视图中文本的末尾:
EditText et = (EditText)findViewById(R.id.textview);
int textLength = et.getText().length();
et.setSelection(textLength, textLength);
完全工作的解决方案!!
kotlin,你需要用post
fun EditText.placeCursorToEnd() {
this.setOnFocusChangeListener { v, hasFocus ->
if (hasFocus) {
v.post { this.setSelection(text.length) }
}
}
this.setOnClickListener {
it.post { this.setSelection(text.length) }
}
}
科特林:
将光标设置到起始位置:
val editText = findViewById(R.id.edittext_id) as EditText
editText.setSelection(0)
将光标设置到EditText的末尾:
val editText = findViewById(R.id.edittext_id) as EditText
editText.setSelection(editText.text.length)
下面的Code是将光标放在第二个字符之后:
val editText = findViewById(R.id.edittext_id) as EditText
editText.setSelection(2)
JAVA:
将光标设置到起始位置:
EditText editText = (EditText)findViewById(R.id.edittext_id);
editText.setSelection(0);
将光标设置到EditText的末尾:
EditText editText = (EditText)findViewById(R.id.edittext_id);
editText.setSelection(editText.getText().length());
下面的Code是将光标放在第二个字符之后:
EditText editText = (EditText)findViewById(R.id.edittext_id);
editText.setSelection(2);
editText。这里的setSelection很神奇。基本上选择让你把光标放在任何你想要的位置。
EditText editText = findViewById(R.id.editText);
editText.setSelection(editText.getText().length());
这将光标放置到EditText的末尾。基本上,editText.getText().length()会给出文本长度。然后使用setSelection with length。
editText.setSelection(0);
它用于将光标设置在起始位置(0)。
我认为这可以达到你想要的效果。
Editable etext = mSubjectTextEditor.getText();
Selection.setSelection(etext, etext.length());