2014-02-10 4 views
8
textView.setTextIsSelectable(true); 

требует Минимального уровня API 11.Как поддержать textView.setTextIsSelectable в более низких версиях Android?

Есть в любом случае, чтобы поддерживать его от уровня API 8+?

+1

андроида: textIsSelectable в XML –

+0

я хочу в коде, я динамически изменить его на «истинный» и ложные – yajnesh

+1

ли вы взглянули на http://stackoverflow.com/questions/16167330/how-to- make-textview-selectable-under-api-11 или http://stackoverflow.com/questions/6625300/selecting-text-on-textview-android-2-2? – Flixer

ответ

2

Есть некоторые методы, описанные here & here, но, наверное, не способ сделать это, чтобы достичь той же функциональности

+0

Спасибо, я проверю это – yajnesh

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()); 
    } 
} 
+1

Я использую EditText. Где getSelectableLongClick() и getSelectableOnTouch()? – yajnesh

1

Я используя EditText с атрибутами:

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

И сделать это по коду:

editText.setKeyListener(null); 

Что делает EditText не редактируемым, но все еще с возможностью выбора и копирования. Единственный недостаток - видимый курсор при фокусировке виджета. Я не могу установить android:cursorVisible на false, потому что он скрывает фон выделения вместе с курсором.

Смежные вопросы