如何在EditText for android中将焦点设置到文本右侧?

Vin*_*nod 21 android android-widget android-layout android-edittext

在我的应用程序中,当用户单击或触摸"编辑文本"视图时,焦点有时会设置为开头.例如,如果现有文本为"Hi".用户想要点击它并将其更改为"H1你好吗?" 添加文字"你好吗?".但由于焦点在一开始,它就变成了"你好吗?嗨".因此,我总是希望在选择时将焦点设置为最正确的文本.我该怎么做呢.如果可能的话,请告诉我一些样品.感谢您的时间和帮助.

ina*_*ruk 46

您可以在文本中明确地将插入符号放在最后位置:

EditText editText = (EditText) findViewById(R.id.textId);
int pos = editText.getText().length();
editText.setSelection(pos);
Run Code Online (Sandbox Code Playgroud)


小智 8

你要问的更具体,你可以使用下一个代码:

EditText editText = (EditText) findViewById(R.id.textId);    
editText.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if(hasFocus){
            editText.setSelection(editText.getText().length());
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

方法setOnFocusChangeLister()用于检测editText何时接收焦点.