Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Ocultar el teclado después de llamar a la nueva actividad que muestra un ProgressDialog

Tengo problemas con el teclado en pantalla. Tengo una actividad con un EditText que muestra el teclado, y un botón para ir a una segunda actividad. La segunda actividad muestra un ProgressDialog en su onCreate() , hace cosas, y descarta el ProgressDialog . El problema es que mientras se muestra el ProgressDialog , también lo es el teclado.

Quisiera que el teclado desapareciera antes de crear el ProgressDialog . Busqué mucho StackOverflow y otros sitios, pero nada parece funcionar con este escenario en particular.

Estoy adjuntando dos fotos para su referencia:

Http://i45.tinypic.com/2rzq7b6.png http://i45.tinypic.com/34ret1z.png

Este es el código de la primera actividad:

 public class FirstActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.button1).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(FirstActivity.this, SecondActivity.class); startActivity(intent); } }); } } 

Y este es el código de la segunda actividad:

 public class SecondActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); // TODO: hide keyboard here final ProgressDialog dialog = ProgressDialog.show(this, "", "Please wait...", true, false, null); // in real code, here there is an AsyncTask doing stuff... new Handler().postDelayed(new Runnable() { @Override public void run() { dialog.dismiss(); } }, 5000); } } 

Gracias

5 Solutions collect form web for “Ocultar el teclado después de llamar a la nueva actividad que muestra un ProgressDialog”

Resuelto usando una variante de la técnica publicada por phalt:

 InputMethodManager im = (InputMethodManager) this.getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE); im.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 

Este código funciona correctamente durante onCreate / onStart / onResume , ya que no se basan en una vista enfocada para obtener el token de ventana.

Escriba este código en el archivo manifest.xml para la actividad 'SecondActivity'.

 <activity name="EditContactActivity" android:windowSoftInputMode="stateAlwaysHidden"> ... </activity> 

Usted puede utilizar como esto también:

InputMethodManager imm;

Escriba debajo de la línea en onCreate () Método:

Imm = (InputMethodManager) getSystemService (Context.INPUT_METHOD_SERVICE);

Y esta línea está en onclick del botón:

Imm.hideSoftInputFromWindow (arg0.getWindowToken (), 0);

Ejemplo:

 public class FirstActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.button1).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { imm.hideSoftInputFromWindow(arg0.getWindowToken(), 0); Intent intent = new Intent(FirstActivity.this, SecondActivity.class); startActivity(intent); } }); } } 

Si en clase de fragmento

 @Override public void onResume() { getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); super.onResume(); } 

Si está en clase de actividad

  @Override public void onResume() { this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); super.onResume(); FetchLocation fl = new FetchLocation(mContext, locationResult); } 

Has probado:

 InputMethodManager im = (InputMethodManager) this.getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE); im.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputManagerMethod.HIDE_NOT_ALWAYS); 

Este es el código que tiro en los puntos que quiero ocultar el teclado.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.