selectAll()无效,解决方案


在部分手机调用selectAll()方法无效,

等实际运行起来发现只有第一次按回车的时候会选择EditText里面的内容,再点击一次EditText将内容取消选中再按回车,这一次就不能再选中内容了,并且光标移动到了第一个位置,这是一个从Android4.0开始的bug,如果显示了光标,则selectAll()选择的宽度为0,需要先不显示光标。

解决方法是:

1)先调用clearFocus()方法取消焦点,这样就不显示光标了,然后再调用requestFocus()方法获取焦点,再调用selectAll()方法选中全部。

            先清除其焦点,然后重新请求,在调用selectAll()

2)通过改变EditText内容的方式取消焦点,再重新获取焦点并选中全部。

Editable text = mEtOne.getText();

if (text.length() > 0) {

    text.replace(0, 1, text.subSequence(0, 1), 0, 1);

    mEtOne.selectAll();

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。