2012-05-15 11 views
15

Ich habe eine einfache EditText über ein ListView unten definiert.Android: EditText schaltet die Tastatur automatisch, wie man stoppt?

Wenn die App läuft, wird die EditText ausgewählt und die Tastatur erscheint.

Ich will nicht, dass das passiert. Ich möchte nicht, dass es ausgewählt wird oder dass die Tastatur standardmäßig angezeigt wird.

<EditText 
    android:id="@+id/search_box" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:hint="type to search titles" 
    android:inputType="text" 
    android:maxLines="1" 
    android:capitalize="none" 
    android:linksClickable="false" 
    android:autoLink="none" 
    android:autoText="true" 
    android:singleLine="true" /> 
<ListView 
    android:id="@+id/DetailsListView" 
    android:layout_width="fill_parent" 
    android:layout_height="0dip" 
    android:layout_weight="1" 
    android:background="@color/transparent" 
    android:cacheColorHint="@color/transparent" 
    android:listSelector="@drawable/list_selector" 
    android:fastScrollEnabled="true" /> 
+0

http://stackoverflow.com/questions/2496901/android-on-screen-keyboard-auto-popping-up – FoamyGuy

+0

doppelte: http://stackoverflow.com/questions/106 11833/how-to-disable-tastatur-popup-when-on-edittext –

Antwort

7

ich dies die Lösung zu sein gefunden:

Window.SetSoftInputMode (SoftInput.StateAlwaysHidden); 

Hinweis: Dies ist in C# nicht Java für Android

+3

warum ist das die akzeptierte antwort. Die Frage ist für Android-Entwicklung in Java nicht C#. – WallMobile

+0

Sie können native Android-Apps in C# schreiben. Tatsächlich können Sie auch iOS in C# schreiben und 80% des Codes zwischen den beiden Plattenformen teilen. 100% nativer Code. (Xamarin.com) –

+0

In Bezug auf die obige Antwort können Sie dies auch im Manifest für die Aktivität wie folgt angeben: 'android: windowSoftInputMode =" stateAlwaysHidden "'. –

2

versuchen, diese in das Layout

<EditText 
        android:id="@+id/myid2" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_below="@id/myid1" 
        android:clickable="true" 
        android:cursorVisible="false" 
        android:focusable="false" 
        android:hint="@string/hint" 
        android:singleLine="true" 
        android:textColor="@color/black" 
        android:textSize="15dp" /> 

und diese in Ihrem Code

myEditText.setOnTouchListener(new OnTouchListener() { 

     public boolean onTouch(View v, MotionEvent event) { 

      if (event.getAction() == MotionEvent.ACTION_UP) { 
       //do tasks 
      } 
      return false; 
     } 
    }); 

ich weiß nicht, ob es irgend ist. Ich weiß nicht einmal, was es tut. aber es löste ein ähnliches Problem für mich. sry, wenn ich Ihre Zeit verschwendet

25

Zuerst wird der Tag ist monodroid so ist es auf C#, so dass die akzeptierte Antwort ist korrekt.

Aber ist nicht das, was ich denke, der Autor will ... dieser Trick verstecken nur die Tastatur aber die editText noch den Fokus haben.

Um dies zu tun, sowohl in Java und C#, müssen Sie dieses Layout in Ihrer Wurzel setzen:

android:descendantFocusability="beforeDescendants" 
android:focusableInTouchMode="true" 

Zum Beispiel:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/white" 
    android:descendantFocusability="beforeDescendants" 
    android:focusableInTouchMode="true" 
       > 
.... 
</LinearLayout> 
+0

fügen Sie dem Textlayout die beiden Eigenschaften hinzu! Das Hinzufügen zum Rootlayout hat mir nicht geholfen! –

6

Fügen Sie diese in onCreate

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 
+1

Sie können dies auch im Manifest angeben für die Aktivität wie folgt: 'android: windowSoftInputMode =„stateHidden“'. –

Verwandte Themen