2012-05-11 11 views
14

私はアクティビティでListViewを持っており、各項目に私のテキストを表示するEditTextを挿入します。 テキストを選択するにはハンドルをドラッグする必要があります&テキストをコピーしますが、テキストは編集できません。 Android ICSではどうすればよいですか?Android Ice Cream SandwichでEditTextを選択可能にすることはできますが編集できないようにするにはどうすればいいですか?

答えて

3

この問題は解決しました。ただ、このようTextViewに設定
:XMLの使用においては :

text.setTextIsSelectable(true); 
+0

コールにはAPIが必要11 –

4

あなたはonKeyDown()メソッドをオーバーライドして何もしないでtrueを返すことができると思います。それはキーボードからキーを押さえて、EditTextのテキストに入る前にそれらを無効にする必要があります。

あなたは可能性もtry setting editableあなたのxmlレイアウトでのEditTextでこの

android:editable="false" 

などのfalseに。しかし、これでまだハイライトやコピーができるのかどうかはわかりませんが、それは価値があります。

+1

ありがとう、ティム!しかしアンドロイド:Android Ice Cream Sandwichでは編集可能です。 – Limp

+0

代わりに何を使うべきかを伝えるメモを残しましたか? – FoamyGuy

+1

はい、彼らはTextViewを代わりに使用するように指示しました。しかしTextViewは選択できません。 – Limp

14

text.setTextIsSelectable(true)は低くAPIのを使用してそれらのためにAPI 11を必要と

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

これはあなたのEditTextが編集できないが、選択可能になります。

+0

API 10(2.3.4および2.3.6でテスト済み)では、上記2行が機能しないことが確認できます。 EditTextはまだ編集可能でキーボードはポップアウトします。 – Bruce

+0

次に解決策は何ですか? –

+1

私の完全な答えはhttp://stackoverflow.com/a/20173020/1241783に掲載されています。ハッキーな方法を誇りに思っているわけではありませんが、私が今知っている唯一の方法です。誰かがAPIバージョン<10のためのよりよい方法を知っている場合はお知らせください。ありがとう! – Bruce

0

Althouth android:editable非推奨で、リントは、動作するようには思えない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" /> 
関連する問題