gpt4 book ai didi

android - EditText 的 onFocusChange 中的 setSelection

转载 作者:行者123 更新时间:2023-11-29 15:12:15 28 4
gpt4 key购买 nike

通常情况下,点击 View 时,文本光标会设置在您点击的位置附近。
我尝试将它始终设置为结束(超过最后一个字符),但除非 Action 被延迟,否则它什么都不做。
以下内容:

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);

使它工作,但这是不好的做法。

有什么更好的选择? OnClickListenerOnTouchListener(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());
}
});
}
}
});

关于android - EditText 的 onFocusChange 中的 setSelection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29843935/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com