2012-04-20 20 views
5

Tengo un TableLayout en el que estoy agregando contenido dinámicamente en el código en OnCreate. Una vez que crea la actividad, se centra en uno de mis EditTexts creados dinámicamente y muestra el teclado. No quiero que el teclado se muestre hasta que el usuario presione específicamente uno de los EditTexts. Lo he intentado:Ocultar entrada suave en OnCreate

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

Pero el teclado todavía se muestra y CurrentFocus devuelve nulo. Así que cuando intento para apuntar específicamente el foco a otro punto de vista y luego realizar lo anterior como:

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

CurrentFocus sigue siendo nula y el teclado sigue muestra. título es un TextView que ya tengo una instancia de código. ¿Puedo simplemente no centrarme en un TextView o me falta algo más?

+1

hicieron que ha intentado añadir 'androide : windowSoftInputMode = "stateUn" cambiado "' a tu actividad en el manifiesto? – Selvin

Respuesta

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

He visto eso, pero MonoDroid no parece tener SoftInputStateHidden. Solo SoftInputStateChanged que no hace nada. – jmease

+0

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

+0

"Tipo de argumento 'Android.Views.SoftInput' no se puede asignar al tipo de parámetro entero" – jmease

6

muy fácil

  1. Ir al archivo de AndroidManifest.xml
  2. En su actividad Añadir: android:windowSoftInputMode="stateHidden"

Por ejemplo:

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

Esta debería ser la respuesta aceptada ya que esta es una práctica correcta. –

Cuestiones relacionadas