Android:如何使TextView可编辑?

unc*_*Lem 36 android

如何让用户编辑TextView?当然,我可以使用EditText,但我不知道如何自定义它,我也读过TextView可以编辑的Android文档.所以我尝试了这个:

<TextView android:id="@+id/tv"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textSize="80sp"
          android:text="MyText"
          android:editable="true"
          android:singleLine="true"
          android:inputType="text"
          android:focusable="true"
          android:clickable="true"
          android:cursorVisible="true"/>
Run Code Online (Sandbox Code Playgroud)

但它看起来仍然很常见TextView.有谁知道我错过了什么?或者,可能是,如何定制EditText它看起来像TextView:没有边框和背景?

Ben*_*oli 73

我知道你不想使用它,EditText但它很容易让它看起来像一个TextView.

<EditText
     android:id="@+id/Id"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:background="@android:color/transparent" >
 </EditText>
Run Code Online (Sandbox Code Playgroud)

你也可以使用android:background="@null".

编辑:

TextVieweditablePARAM 确实使其可编辑(有一些限制).

如果您设置了android:editable="true"可以TextView通过D-pad 访问,或者您可以添加android:focusableInTouchMode="true"以便能够获得焦点触摸.

问题是您无法修改现有文本,也无法移动光标.您编写的文本只会在现有文本之前添加.

  • 如果在xml中将editable设置为true,Eclipse会给出以下警告:*android:editable不建议使用:使用<EditText>使其可编辑 - 属性android:editable不应与<TextView>一起使用:将元素类型更改为<EditText>?* (2认同)

Aer*_*lys 8

你可以假装一个可编辑的Textview.您只需在触摸时隐藏文本视图(使其"可点击"),将其替换为EditText,并在编辑结束时再次显示.


Ari*_*ael 7

您可以通过添加这些行来使TextView可编辑

tv.setFocusable(true);
tv.setEnabled(true);
tv.setClickable(true);
tv.setFocusableInTouchMode(true);
Run Code Online (Sandbox Code Playgroud)