web-dev-qa-db-ja.com

AndroidでEditTextを無効にする方法

AndroidのEditTextフィールドへの入力を無効にするにはどうすればよいですか?

72
aj10

Androidのバグだと思います。このパッチを追加することで修正できます。
これらのリンクを確認してください 質問1 および 質問2

それが役に立つことを願っています。

38
Midhun

EditText.setFocusable(false)を使用して編集を無効にすることができます
EditText.setFocusableInTouchMode(true)編集を有効にします。

59
chaitanya

コード内:

editText.setEnabled(false);

または、XMLで:

Android:editable="false"
35
Gabriel Negut

editTextがあなたEditTextオブジェクトであると仮定すると:

editText.setEnabled(false);
11
MByD

次の方法を試すことができます:

 private void disableEditText(EditText editText) {
    editText.setFocusable(false);
    editText.setEnabled(false);
    editText.setCursorVisible(false);
    editText.setKeyListener(null);
    editText.setBackgroundColor(Color.TRANSPARENT); 
 }

EditTextを有効化:

Enabled EditText

無効なEditText:

Disabled EditText

それは私のために働き、それがあなたを助けることを願っています。

9
Maksym Kalin

Edittextのfocusableプロパティを「false」に設定するだけで完了です。

<EditText
        Android:id="@+id/EditTextInput"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:focusable="false"
        Android:gravity="right"
        Android:cursorVisible="true">
    </EditText>

以下のオプションは機能しません

コード内:

editText.setEnabled(false);または、XMLの場合:Android:editable="false"

8
ramit girdhar
Edittext edittext = (EditText)findViewById(R.id.edit);
edittext.setEnabled(false);
5
saigopi
edittext.setFocusable(false); 
edittext.setEnabled(false);

InputMethodManager imm = (InputMethodManager)
  getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
  //removes on screen keyboard
2
Kumar Sukhani

以下のコードは、AndroidでEditTextを無効にします

editText.setEnabled(false);
2
uday

有効にする:

private void enableEditText() {
    mEditText.setFocusableInTouchMode(true);
    mEditText.setFocusable(true);
    mEditText.setEnabled(true);
}

無効にする:

private void disableEditText() {
    mEditText.setEnabled(false);
    mEditText.setFocusable(false);
    mEditText.setFocusableInTouchMode(false);
}
2
Danylo Volokh

Androidで編集テキストを無効にするには:

editText.setEnabled(false);
1
Vineet

編集テキストを表示するが値を入力しない場合は、edittext.setInputType(0)と書くことができます。

1
Jaydeep Khamar

API LEVEL 15 であるため、XML editableプロパティは非推奨です。

inputTypeを持つnoneプロパティを使用する必要があります。しかし、この機能を役に立たないバグがあります。

ここ 問題のステータスを追跡できます。

0
Brugui

親にこれを書いてください:

Android:descendantFocusability="beforeDescendants"
Android:focusableInTouchMode="true"

例:

<RelativeLayout 
Android:id="@+id/menu_2_zawezanie_rl"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_below="@+id/menu_2_horizontalScrollView"
Android:descendantFocusability="beforeDescendants"
Android:focusableInTouchMode="true"
Android:orientation="horizontal"
Android:background="@drawable/rame">

<EditText
    Android:id="@+id/menu2_et"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentLeft="true"
    Android:layout_centerVertical="true"
    Android:layout_toLeftOf="@+id/menu2_ibtn"
    Android:gravity="center"
    Android:hint="@string/filtruj" >
</EditText>
<ImageButton
    Android:id="@+id/menu2_ibtn"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentLeft="true"
    Android:layout_centerVertical="true"
    Android:background="@null"
    Android:src="@drawable/selector_btn" />
0
Gimer

私によると...あなたがすでにXMLファイルでedittextを宣言し、XMLファイルでプロパティを設定している場合"Android:enabled=false"、Javaでその時点でそれを無効にする_ 2行または3行のみを追加するファイル

  1. 最初にオブジェクトを作成します
  2. EditText et1を宣言します。
  3. IDで取得

    et1 = (EditText) FindViewById(R.id.edittext1);
    et1.setEnabled(false);

Javaファイルによって実行時にすべてのコントロールを有効または無効にし、XMLファイルによって設計時に有効または無効にすることができます。

0
Nimisha Patel