19

Android 1.6(4)および2.3.3(10)でテスト済み。

これを実証するために最小限のテストアプリケーションを作成しました。これは、xmlをロードするだけです。

setContentView(R.layout.main); 

xmlは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello" />

<EditText
    android:id="@+id/editText1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:inputType="none"
    android:ems="10" >

</EditText>

問題:

inputType="none"実行時に実際の入力タイプを設定するtextMultiLine(0x00020001)と、デバッガで確認しました。

一方、使用inputType="text"すると期待どおりに動作します。

これはAndroidのバグですか?

4

7 に答える 7

32

私は同じ問題を抱えていました:xmlを介した入力タイプの定義が機能しませんでした。

次に、それを修正するために、プログラムで入力タイプを設定します。

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState)
    {
    ...
    editText1= (EditText) super.getActivity().findViewById(R.id.editText1);
    editText1.setInputType(InputType.TYPE_NULL);    // none...
    ...
    }

それは私にとってはうまくいきます。

于 2015-08-10T12:35:26.180 に答える
13

InputType = "none" xmlの設定は機能しませんが、データバインディングを使用している場合は、バインディング構文を使用して入力タイプを設定できます。

タイプをインポートします。

<data> <import type="android.text.InputType" /> </data>

次に、値をバインドします

<EditText android:id="@+id/edit_text" android:inputType="@{InputType.TYPE_NULL}" />

于 2017-07-06T13:03:43.443 に答える
10

私が知る限り、これはAndroidコードのバグです。参考のためにこれを参照してください-AndroidでXMLを介してEditTextを編集できないようにする方法は?

GalDude33が示唆する-

    android:clickable="false" 
    android:cursorVisible="false" 
    android:focusable="false" 
    android:focusableInTouchMode="false"
于 2012-04-18T02:12:03.513 に答える
10

を使用しandroid:editable="false"ます。非推奨ですが、inputTypeが機能しない場合でも機能します。

于 2014-02-25T14:55:16.410 に答える
4

これを使って

 textView.setKeyListener(null);
于 2014-03-10T07:29:04.407 に答える
2

このように.xmlを設定することはできますが、カーソルが表示されていたため、別の行を追加する必要がありました。

android:focusable="false"
android:cursorVisible="false" 

2年経ってもこの「バグ」が存在し、減価償却された方法が提案された方法よりもうまく機能するのは不思議です。

これを使用することもできますが、色を変えたい場合を除いて、その場合は背景色を編集する必要があります。

android:enabled="false"
于 2021-07-12T10:53:08.013 に答える
0

次のコードが機能します。

使用するandroid:enabled="false"

于 2021-06-04T14:33:35.730 に答える