Ответ 1
Я решил эту проблему.
Просто установите TextView следующим образом:
text.setTextIsSelectable(true);
У меня есть ListView в Activity, и в каждом элементе я вставляю EditText для отображения моего текста. Мне нужно перетащить дескриптор, чтобы выбрать текст и скопировать текст, но не могу редактировать текст. В Android ICS, как я могу это сделать?
Я решил эту проблему.
Просто установите TextView следующим образом:
text.setTextIsSelectable(true);
text.setTextIsSelectable(true)
требуется API 11. Для тех, кто использует более низкие API:
В xml используйте:
android:inputType="none"
android:textIsSelectable="true"
Это сделает ваш EditText неизменным, но можно выбрать.
Я думаю, вы можете переопределить метод onKeyDown(), чтобы он ничего не делал, но возвращал true. Он должен улавливать нажатия клавиш с клавиатуры и отменять их, прежде чем они смогут перейти в текст в EditText.
Вы также можете попытаться настроить редактируемое на false, как это
android:editable="false"
в EditText в вашем XML-макете. Однако я не уверен, что это позволит вам выделять и копировать, но это стоит того.
Althouth android:editable
устаревший, и Lint предлагает использовать 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" />