Frage

Einer meiner apps hat einen „Startbildschirm“ (im Grunde ein Menü), die eine EditText von mehreren Buttons gefolgt hat. Das Problem ist, dass einige meiner Benutzer berichten, dass, wenn sie die App öffnen automatisch die Tastatur auf dem Bildschirm auftauchen es ohne sie sogar die EditText berühren. Soweit ich das beurteilen kann, alle diese Benutzer verwenden die HTC Hero .

Ist das ein Fehler in 1.5? Gibt es etwas, was ich dagegen tun kann?

War es hilfreich?

Lösung

Sie können mit der folgenden Codezeile in der onCreate Methode Aktivität sicher, dass die Tastatur machen nur erscheint, wenn ein Benutzer klickt in eine EditText

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

Andere Tipps

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Main"
              android:label="@string/app_name"
              android:windowSoftInputMode="stateHidden"
              >

Dies funktioniert für Android 3.0, 3.1, 3.2, 4.0 - Editor verwendet, um Compile (Eclipse-3.7)

Stellen Sie den ‚windowSoftInputMode =‚stateHidden‘‘ in Ihrer Anwendung Manifest XML-Datei für jede Aktivität, die Sie für die Software-Tastatur wünschen in verborgen bleiben. Das bedeutet, die Tastatur wird nicht automatisch kommen, und der Benutzer muss ‚klicken 'auf einem Textfeld bringen es auf. Ich suchte fast eine Stunde für etwas, das funktionierte so dass ich dachte, ich würde teilen.

Dieser Code wird auf allen Android-Versionen arbeiten:

@Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_login);

 //Automatic popping up keyboard on start Activity

     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

 or

 //avoid automatically appear android keyboard when activity start
     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
 }

Fügen Sie diese in Ihrem AndroidManifest.xml :

android:windowSoftInputMode="stateHidden|adjustResize"

Es funktioniert perfekt. :)

Sie können entweder das im onCreate () -Methode der Aktivität

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

oder diesen Code und fügen den Aktivitäts-Tags in AndroidManifest.xml

android:windowSoftInputMode="stateVisible"

Sie können in der Zeile Code hinzufügen Android Mainfest.xml unter Aktivitäts-Tag

 <activity
        android:name="com.sams.MainActivity"
        android:windowSoftInputMode="stateVisible" >
 </activity>

kann dies hilft Ihnen.

In dieser Version von Android, wenn eine Ansicht aufgeblasen wird, wird der Fokus auf die ersten fokussierbare Steuerung voreingestellt werden. - und wenn es keine physische Tastatur ist, die On-Screen-Tastatur wird angezeigt

Um dies zu beheben, explizit Set Fokus woanders. Wenn der Fokus auf etwas anderes als ein EditText gesetzt, Tastatur die auf dem Bildschirm nicht angezeigt.

Haben Sie versucht, diese Prüfung von Android läuft 1.5 im Emulator?

Sie können es programmatisch wie

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);

oder Satz android:windowSoftInputMode="stateHidden" in <activity tag innerhalb AndroidManifest.xml

Fügen Sie diese in übergeordnetem Layout des XML.

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

Sie stellt sicher, der Fokus nicht auf der editText, wenn die Aktivität beginnt.

InputMethodManager imm = (InputMethodManager)GetSystemService(Context.InputMethodService);
        imm.ShowSoftInput(_enterPin.FindFocus(), 0);

* Dies ist für Android.xamarin und FindFocus () - es sucht nach der Ansicht in der Hierarchie in dieser Ansicht begründet, dass derzeit den Fokus hat, wie ich _enterPin.RequestFocus () vor dem obigen Code habe so zeigt es Tastatur für _enterPin EditText *

Diese umfassen, wo die Importe auf, sind:

import android.view.WindowManager;

Fügen Sie diesen Code auf OnCreate Teil:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ....
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top