44

ユーザーが を編集できるようにするにはどうすればよい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"/>

しかし、それはまだ共通のように見えますTextView。誰かが私が逃したものを知っていますか? または、次のようにカスタマイズする方法があるかもしれませんEditText:TextView境界線と背景なし?

4

6 に答える 6

85

を使いたくないことは知っていますEditTextが、のように見せることは本当に簡単TextViewです。

<EditText
     android:id="@+id/Id"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:background="@android:color/transparent" >
 </EditText>

を使用することもできますandroid:background="@null"

編集:

のパラメータ編集可能になります(いくつかの制限があります)TextVieweditable

設定android:editable="true"すると、十字キーを介してビアにアクセスできます。または、タッチに集中できるようにTextView追加することもできます。android:focusableInTouchMode="true"

問題は、既存のテキストを変更できず、カーソルを移動できないことです。書いたテキストは、既存のテキストの前に追加されます。

于 2012-08-21T13:43:24.220 に答える
8

編集可能な Textview を偽造できます。テキストビューに触れたときにテキストビューを非表示にし (「クリック可能」にする)、EditText に置き換え、編集が終了したら再び表示するだけです。

于 2012-08-21T13:37:58.827 に答える
7

これらの行を追加することで、TextView を編集可能にすることができます

tv.setFocusable(true);
tv.setEnabled(true);
tv.setClickable(true);
tv.setFocusableInTouchMode(true);
于 2016-03-11T11:15:01.683 に答える
4

TextView は、EditText にあるすべての機能を定義しますが、組み込みのサポートはありません。EditText の主な違い:

a)メソッド getDefaultEditable() は true を返します。これは、このサブクラスを編集可能として定義するマークにすぎません。

b)移動方法。カーソルの動作を制御するオブジェクトです (位置、後方/前方への移動 - 一部の言語では変更される場合があります)。反対に、 TextView はとにかくカーソルではないため、 null を返すだけです。

c)メソッド CharSequence getText()。TextView は、そのために単一の文字列を返します。EditText は、可変テキスト バッファを表す特定の文字シーケンス実装 (Editable) を使用します。

そのため、TextView を拘束された EditText のように考えることができません。TextView は編集インターフェイスをスケッチしますが、それ自体は実装しません。

時々編集をオフにできるテキスト コンポーネントが必要な場合は、EditText コンポーネントを探しています。

于 2014-11-17T19:29:33.817 に答える