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

}

你可能感兴趣的:(selectAll()无效,解决方案)