431 Stimmen

Android: EditText zum Entfernen des Fokus zwingen?

Ich möchte in der Lage sein, den Fokus vom EditText zu entfernen. Wenn zum Beispiel die Tastatur erscheint und der Benutzer sie mit der Zurück-Taste ausblendet, möchte ich, dass der Fokus und der Cursor verschwinden. Wie lässt sich das bewerkstelligen?

0 Stimmen

Gibt es eine andere Ansicht, die nach EditText fokussiert werden kann?

0 Stimmen

Ist es möglich, eine WebView zu fokussieren?

0 Stimmen

Siehe meine Antwort hier: stackoverflow.com/questions/3890033/

445voto

xtr Punkte 5660

Sie können den Cursor und den Fokus verschwinden lassen, indem Sie

edittext.clearFocus();

Aber zu erkennen, wann sich die Tastatur versteckt, ist eine schwierige Aufgabe.

284voto

Wayner Punkte 3263

Sie können dies hinzufügen zu onCreate und blendet die Tastatur jedes Mal aus, wenn die Activity beginnt.

Sie können den Fokus auch programmatisch auf ein anderes Element legen.

 this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

190voto

Singh Arjun Punkte 2464

Hinzufügen LinearLayout vor EditText in Ihrem XML.

<LinearLayout 
    android:focusable="true"
    android:focusableInTouchMode="true" 
    android:clickable="true"
    android:layout_width="0px"
    android:layout_height="0px" />

Sie können dies auch tun, indem Sie diese Zeilen vor Ihrem "EditText" in die Ansicht einfügen.

<Button
    android:id="@+id/btnSearch"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:gravity="center"
    android:text="Quick Search"
    android:textColor="#fff"
    android:textSize="13sp"
    android:textStyle="bold" />

<EditText
    android:id="@+id/edtSearch"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:layout_marginRight="5dp"
    android:gravity="left"
    android:hint="Name"
    android:maxLines="1"
    android:singleLine="true"
    android:textColorHint="@color/blue"
    android:textSize="13sp"
    android:textStyle="bold" />

110voto

Paschalis Punkte 11227

Den Fokus entfernen, aber fokussierbar bleiben:

editText.setFocusableInTouchMode(false);
editText.setFocusable(false);
editText.setFocusableInTouchMode(true);
editText.setFocusable(true);

EditText verliert den Fokus, kann ihn aber bei einem neuen Berührungsereignis wieder erlangen.

79voto

King of Masses Punkte 17705

Fügen Sie diese beiden Eigenschaften zu Ihrem übergeordneten Layout hinzu (z. B. Lineares Layout, Relatives Layout)

android:focusable="true"
android:focusableInTouchMode="true" 

Das wird schon klappen :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X