通常,单击视图时,将文本光标设置在您单击的位置附近。
我尝试将其始终设置为末尾(过去的最后一个字符),但它不会执行任何操作,除非操作延迟。
下列:
new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus) {
EditText et = (EditText) v;
et.setSelection(et.getText().length());
}
}
});
不起作用。延迟
setSelection
部分:Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
et.setSelection(et.getText().length());
}
}, 40);
使它起作用,但是这是不好的做法。
有哪些更好的选择?
OnClickListener
和OnTouchListener
(ACTION_DOWN和ACTION_UP两者)也无济于事。 最佳答案
无需延迟。我们需要等待setSelection
,否则将自动调用完成并执行我的setSelection
。
new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus) {
final EditText et = (EditText) v;
et.post(new Runnable() {
@Override
public void run() {
et.setSelection(et.getText().length());
}
});
}
}
});