如何在较低的Android版本中支持textView.setTextIsSelectable?

时间:2014-02-10 16:26:35

标签: android textview android-support-library

textView.setTextIsSelectable(true);

需要最低API级别11。

无论如何从API等级8+支持它吗?

3 个答案:

答案 0 :(得分:2)

有一些方法描述here& here,但可能无法实现此功能

答案 1 :(得分:1)

通过扩展TextView类并覆盖setTextIsSelectable

来创建一个新类
        @SuppressLint("NewApi")
public void setTextIsSelectable(boolean selectable) {
    if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB)
        super.setTextIsSelectable(true);
    else
    {   
        super.setLongClickable(true);
        super.setOnLongClickListener(getSelectableLongClick());
        super.setOnTouchListener(getSelectableOnTouch());
    }
}

答案 2 :(得分:1)

我正在使用带有属性的EditText:

android:inputType="none"
android:background="@null"

在代码中执行此操作:

editText.setKeyListener(null);

这使得EditText不可编辑,但仍具有选择和复制功能。唯一的缺点是当窗口小部件被聚焦时可见光标。我无法将android:cursorVisible设置为false,因为它会将选择背景与光标一起隐藏。