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

18

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

Ваш Ответ

4   ответа
17

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

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

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

Проверьте мой полный ответ, размещенный наstackoverflow.com/a/20173020/1241783, Не очень гордый хакерский путь, но это единственный способ, который я знаю на данный момент. Дайте мне знать, если кто-то знает лучший способ для версии API & lt; 10. Спасибо!
Я могу подтвердить, что в API 10 (проверено на 2.3.4 и 2.3.6) две вышеупомянутые строки не работают. EditText все еще редактируемый, и клавиатура выскакивает ..
Тогда каково решение?
спасибо - у меня сработало (с API 15)
1

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" />
3


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

text.setTextIsSelectable(true);
вызов требует API 11
5

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

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

android:editable="false"

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

Да, они сказали мне использовать TextView вместо этого. Но TextView не может быть выбран. Limp
Спасибо, Тим! Но android: редактируемый устарел на Android Ice Cream Sandwich. Limp
они оставили записку, которая говорит вам, что использовать вместо этого?

Похожие вопросы