Как сделать EditText выбираемым, но не редактируемым на Android Ice Cream Sandwich?

У меня есть ListView в Activity, и в каждый элемент я вставляю EditText для отображения моего текста. Мне нужно перетащить ручку, чтобы выбрать текст & amp; Скопируйте текст, но не можете редактировать текст. На Android ICS, как я могу это сделать?

Ответы на вопрос(4)

text.setTextIsSelectable(true) В xml используйте:

android:inputType="none"
android:textIsSelectable="true"

Это сделает ваш EditText не редактируемым, но выбираемым.

android:editable являетсяdeprecated и Линт предлагает использоватьinputTypeЭто, похоже, не работает. Такandroid:editable="false"по-видимому, является наилучшим возможным решением для всех версий Android.

<EditText
    android:id="@+id/editText"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:editable="false"
    android:textIsSelectable="true"
    tools:ignore="Deprecated" />


Просто установите TextView так:

text.setTextIsSelectable(true);

что вы можете переопределить метод onKeyDown (), заставить его ничего не делать, но вернуть true. Он должен перехватывать нажатия клавиш на клавиатуре и отменять их, прежде чем они смогут войти в текст в EditText.

Вы могли бы такжепопробуйте установить редактируемые ложно, как это

android:editable="false"

на EditText в вашем макете XML. Однако я не уверен, позволит ли это вам по-прежнему выделять и копировать, но это стоит того.

ВАШ ОТВЕТ НА ВОПРОС