我使用以下代码在customEditText(cursor
)的end
处设置EditText
,但它不起作用。
customEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
String customEditTextText = customEditText.getText().toString();
int selection = customEditTextText.length();
customEditText.setSelection(selection);
}
}
});
有人有任何想法吗?
答案 0 :(得分:7)
我在AlertDialog中遇到了与EditText相同的问题。我的解决方案是:
mEditText.post(new Runnable() {
@Override
public void run() {
mEditText.setSelection(mEditText.length());
}
});
答案 1 :(得分:2)
这对我有用
mEditText.postDelayed(new Runnable() {
@Override
public void run() {
mEditText.setSelection(mEditText.getText().length());
}
}, 50);
不知道原因,但需要使用postDelayed
才能使其正常运行。
只是post
无效
答案 2 :(得分:1)
为我工作:
editText.requestFocus();
editText.setSelection(editText.getText().length());
答案 3 :(得分:0)
试试这个
customEditText.setSelection(customEditText.getText().length()-1);
答案 4 :(得分:0)
试试这个
customEditText.setSelection(customEditText.getText().length());
设置选择时无需将其转换为字符串...
答案 5 :(得分:0)
尝试一下。...
editText.requestFocus();
注意:它会自动将光标设置到edittext的最后一个位置。
答案 6 :(得分:0)
要打开setSelection才能工作软键盘。
if(binding.edtListName.requestFocus()) {
DataManager.showKeyboard(binding.edtListName,context);
}
DataManager类:
public static void showKeyboard(EditText editText, Context context){
editText.requestFocus();
editText.postDelayed(new Runnable(){
@Override public void run(){
InputMethodManager keyboard=(InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.showSoftInput(editText,0);
if (editText.getText().toString().length() > 0 ) {
editText.setSelection(0,editText.getText().toString().length());
}
}
}
,400);
}