22

我在 Activity 中有一个 ListView,在每个 item 中,我插入一个 EditText 来显示我的文本。我需要拖动手柄来选择文本并复制文本,但不能编辑文本。在 Android ICS 上,我该怎么做?

4

4 回答 4

23

text.setTextIsSelectable(true)需要 API 11。对于使用较低 API 的用户:在 xml 中使用:

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

这将使您的 EditText 不可编辑但可选择。

于 2013-06-08T09:49:45.573 回答
5

我认为你可以重写 onKeyDown() 方法,让它除了返回 true 之外什么都不做。它应该从键盘捕获按键并将它们否定,然后才能进入 EditText 中的文本。

您也可以尝试像这样将 editable 设置为 false

android:editable="false"

在您的 xml 布局中的 EditText 上。但是我不确定这是否会让你仍然突出和复制,但值得一试。

于 2012-05-11T01:41:30.353 回答
3

我解决了这个问题。
只需像这样设置 TextView :

text.setTextIsSelectable(true);
于 2012-05-18T00:59:01.530 回答
2

Althouthandroid:editable已被弃用,Lint 建议使用inputType,它似乎不起作用。所以android:editable="false"显然是所有安卓版本的最佳解决方案。

<EditText
    android:id="@+id/editText"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:editable="false"
    android:textIsSelectable="true"
    tools:ignore="Deprecated" />
于 2017-05-16T16:51:01.103 回答