2012-04-20 16 views
5

Mam TableLayout, że dynamicznie dodawanie zawartości do kodu w OnCreate. Po utworzeniu działania koncentruje się na jednym z moich dynamicznie tworzonych EditTexts i wyświetlaniu klawiatury. Nie chcę, aby klawiatura wyświetlała się, dopóki użytkownik nie wciśnie jednego z EditTextów. Próbowałem:Ukryj miękkie wejście w OnCreate

InputMethodManager input = (InputMethodManager) GetSystemService(InputMethodService); 
input.HideSoftInputFromWindow(CurrentFocus.WindowToken, 0); 

Ale klawiatura nadal wyświetla się, a funkcja CurrentFocus zwraca wartość null. Więc kiedy próbują wskazać konkretnie ostrość na inny widok, a następnie wykonać powyższe jak:

InputMethodManager input = (InputMethodManager) GetSystemService(InputMethodService); 
title.FindFocus(); 
input.HideSoftInputFromWindow(CurrentFocus.WindowToken, 0); 

CurrentFocus nadal jest nieważna i klawiatura nadal wyświetla. title to TextView, który już mam instancję w kodzie. Czy mogę po prostu nie skupić się na TextView, czy jest coś, czego mi brakuje?

+1

nie próbowałeś dodatek 'android : windowSoftInputMode = "stateUn zmieniono "' na twoją aktywność w manifeście? – Selvin

Odpowiedz

22
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 
+0

Spojrzałem na to, ale MonoDroid nie wydaje się mieć SoftInputStateHidden. Just SoftInputStateChanged, który nie robi nic. – jmease

+0

Tak, SoftInput.StateHidden http://docs.mono-android.net/?link=T:Android.Views.SoftInput Window.SetSoftInputMode (SoftInput.StateHidden); –

+0

"Typ argumentu" Android.Views.SoftInput "nie można przypisać typowi liczby całkowitej" – jmease

6

Bardzo łatwy

  1. przejdź do pliku AndroidManifest.xml
  2. W swojej aktywności dodać: android:windowSoftInputMode="stateHidden"

Na przykład:

<activity 
     android:name=".package.example.MyActivity" 
      android:windowSoftInputMode="stateHidden"/> 
+1

To powinna być zaakceptowana odpowiedź, ponieważ jest to poprawna praktyka. –