美文网首页android技术
Androidの EditText 光标始终保持在输入文本末尾

Androidの EditText 光标始终保持在输入文本末尾

作者: SteamPY | 来源:发表于2021-04-30 11:56 被阅读0次

EditText 在设置添加文本内容时候,光标一般都在文本开头,如何一开始自动在文本末尾呢?

方式一:

//关联界面上的editText和主程序mainactivity                                                                                                                                                 
urlInput = (EditText) findViewById(R.id.url_input);                                                                                                                                         
//通过gettext获取当前字符串长度,并用setselection把光秒移到这个长度位置(末尾)                         
 urlInput.setSelection(urlInput.getText().length()); 

方式二:

监听光标移动事件,重写 onSelectionChanged(int selStart, int selEnd)即可,自定义一个EditText, 一劳永逸.

package com.steampy.app.widget.edittext;

import android.content.Context;
import android.util.AttributeSet;

/**
 *  用于光标总是文本最后
 */
public class CustomEditText extends androidx.appcompat.widget.AppCompatEditText {

    public CustomEditText(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public CustomEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomEditText(Context context) {
        super(context);
    }

    @Override
    protected void onSelectionChanged(int selStart, int selEnd) {
        super.onSelectionChanged(selStart, selEnd);
        //保证光标始终在最后面
        if(selStart==selEnd){//防止不能多选
            setSelection(getText().length());
        }
    }
}


相关文章

网友评论

    本文标题:Androidの EditText 光标始终保持在输入文本末尾

    本文链接:https://www.haomeiwen.com/subject/xzjnrltx.html