android - tapar - Cómo ocultar el Teclado suave cuando comienza la actividad
ocultar teclado whatsapp android (18)
Tengo un Edittext con android:windowSoftInputMode="stateVisible"
en Manifest. Ahora el teclado se mostrará cuando empiece la actividad. Cómo ocultarlo? No puedo usar android:windowSoftInputMode="stateHidden
porque cuando el teclado está visible, entonces minimiza la aplicación y reanúdela, el teclado debería estar visible. Lo intenté con
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
Pero no funcionó.
Agregue el siguiente texto a su archivo xml.
<!--Dummy layout that gain focus -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical" >
</LinearLayout>
En AndroidManifest.xml:
<activity android:name="com.your.package.ActivityName"
android:windowSoftInputMode="stateHidden" />
o tratar
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Por favor revisa this también
Espero que esto funcione, probé muchos métodos pero este me funcionó en fragments
. simplemente ponga esta línea en Crear vista / init.
getActivity().getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Esto es lo que hice:
yourEditText.setCursorVisible(false); //This code is used when you do not want the cursor to be visible at startup
yourEditText.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
v.onTouchEvent(event); // handle the event first
InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(v.getWindowToken(), 0); // hide the soft keyboard
yourEditText.setCursorVisible(true); //This is to display cursor when upon onTouch of Edittext
}
return true;
}
});
Para ocultar el teclado en el momento del inicio de Nueva actividad o onCreate()
, onStart()
etc., puede usar el siguiente código:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Para ocultar el teclado en el momento del inicio de la Nueva actividad o en el método de creación (), onStart (), etc., use el siguiente código:
getActivity().getWindow().setSoftInputMode(WindowManager.
LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Para ocultar el teclado en el momento del botón, haga clic en actividad:
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
assert imm != null;
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
Pon este código como tu archivo java y pasa el argumento para el objeto en edittext,
private void setHideSoftKeyboard(EditText editText){
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
Pon esto en el manifiesto dentro de la etiqueta de Actividad
android:windowSoftInputMode="stateHidden"
Prueba este también
Ed_Cat_Search = (EditText) findViewById(R.id.editText_Searc_Categories);
Ed_Cat_Search.setInputType(InputType.TYPE_NULL);
Ed_Cat_Search.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
Ed_Cat_Search.setInputType(InputType.TYPE_CLASS_TEXT);
Ed_Cat_Search.onTouchEvent(event); // call native handler
return true; // consume touch even
}
});
Prueba esto.
Primero, en los campos xml buscables (nombre y pista, etc.) ponga @string
y no cadenas literales.
Luego método onCreateOptionsMenu
, debe tener un objeto ComponentName
con su nombre de paquete y su nombre de clase completo (con nombre de paquete) - En caso de que la actividad que tiene el componente SearchView
sea la misma que la de los resultados de búsqueda, use getComponentName()
, como google android desarrollador dice.
Intenté muchas soluciones y después de mucho, mucho trabajo, esta solución me funciona.
Prueba esto:
<activity
...
android:windowSoftInputMode="stateHidden|adjustResize"
...
>
Mire this para más detalles.
Puedes configurar config en AndroidManifest.xml
Ejemplo:
<activity
android:name="Activity"
android:configChanges="orientation|keyboardHidden"
android:theme="@*android:style/Theme.NoTitleBar"
android:launchMode="singleTop"
android:windowSoftInputMode="stateHidden"/>
Si su aplicación se dirige a Android API Nivel 21 o más, existe un método predeterminado disponible.
editTextObj.setShowSoftInputOnFocus(false);
Asegúrese de haber establecido el código a continuación en la etiqueta EditText
XML.
<EditText
....
android:enabled="true"
android:focusable="true" />
Solo agrega dos atributos a la vista principal de editText.
android:focusable="true"
android:focusableInTouchMode="true"
Use las siguientes funciones para mostrar / ocultar el teclado:
/**
* Hides the soft keyboard
*/
public void hideSoftKeyboard() {
if(getCurrentFocus()!=null) {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
}
/**
* Shows the soft keyboard
*/
public void showSoftKeyboard(View view) {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
view.requestFocus();
inputMethodManager.showSoftInput(view, 0);
}
Utilice el siguiente código para ocultar el teclado por primera vez cuando inicie la actividad
getActivity().getWindow().setSoftInputMode(WindowManager.
LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Ed_Cat_Search = (EditText) findViewById(R.id.editText_Searc_Categories);
Ed_Cat_Search.setInputType(InputType.TYPE_NULL);
Ed_Cat_Search.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
Ed_Cat_Search.setInputType(InputType.TYPE_CLASS_TEXT);
Ed_Cat_Search.onTouchEvent(event); // call native handler
return true; // consume touch even
}
});
this one worked for me
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
funcionará