Que tal a todos, en mi aplicación tengo muchos fragments, al iniciarla después del login me aparece la principal con un ListView y un campo de búsqueda,cada vez que iniciaba mi app se abría el teclado ya que el "focus" del Edittext estaba siempre activo y eso no me gustaba, así que la bloquee con esto:
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
igual puede servir esto para quitar el Focus:
mainBuscarTextField.setFocusable(false);
Ahora, en el ActionBar tengo un botón de búsqueda, quiero que al dar click en ese botón me abra la actividad principal en la cual tengo el EditText y quiero que el focus se active y por lo tanto abra el teclado
Esto es lo que tengo:
**********Aquí está el código de mi actionBar********************
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
if (item.getItemId() == R.id.search) {
Toast.makeText(getActivity(), "Buscar", Toast.LENGTH_SHORT).show();
abrir_busqueda();
return true;
}
return super.onOptionsItemSelected(item);
}
*********Aquí tengo el método por el cual abro la actividad y para que muestre el teclado,pero no lo hace ***************
private void abrir_busqueda(){
Intent intent = new Intent(getActivity(), MainScreenView.class);
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
startActivity(intent);
}
Mi pregunta sería:
¿Cómo pasar de un estado ya sea "false" o "true" del Focus al momento de abrir una actividad por medio del Intent?
¿Se puede cambiar por medio del putExtra en el Intent?
¿Se puede desactivar y activar el teclado cuando uno quisiera?