Как избежать автоматического появления клавиатуры Android при запуске активности

У меня есть активность с EditText . Каждый раз, когда это действие показывает, My EditText получает фокус и клавиатуру Android. Я не хочу этого. Я не хочу, чтобы Android-клавиатура показывалась автоматически. Как я могу сделать?

Я думаю, что следующее может работать

 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 

Раньше я использовал его для такого рода вещей.

Попробуйте это также –

 this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

В противном случае объявите в своем действии файл манифеста –

 <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Main" android:label="@string/app_name" android:windowSoftInputMode="stateHidden" > 

Если вы уже использовали android:windowSoftInputMode для значения, например adjustResize или adjustPan , вы можете объединить два значения:

 <activity ... android:windowSoftInputMode="stateHidden|adjustPan" ... > 

Это будет скрывать клавиатуру, когда это необходимо, но панорамируйте вид активности в случае, если клавиатура должна отображаться.

Скрыть его для всех действий, используя тему

 <style name="MyTheme" parent="Theme"> <item name="android:windowSoftInputMode">stateHidden</item> </style> 

Задать тему

 <application android:theme="@style/MyTheme"> 

Добавьте эти два свойства в родительский макет (например: Linear Layout, Relative Layout)

 android:focusable="true" android:focusableInTouchMode="true" 

Это будет трюк 🙂

Попробуйте объявить его в файле манифеста

 <activity android:name=".HomeActivity" android:label="@string/app_name" android:windowSoftInputMode="stateAlwaysHidden" > 

Просто добавьте в AndroidManifest.xml

 <activity android:name=".HomeActivity" android:windowSoftInputMode="stateHidden"> </activity> 

Если вы используете API уровня 21, вы можете использовать editText.setShowSoftInputOnFocus (false);

Лучшее решение для меня, вставьте свой класс

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

Функция скрытия клавиатуры.

 public static void hideKeyboard(Activity activity) { View view = activity.getCurrentFocus(); if (view != null) { InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } } 

Скрыть клавиатуру в файле AndroidManifext.xml.

 <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme" android:windowSoftInputMode="stateHidden"> 
 //to hide the soft keyboard InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 

Это происходит, когда вы EditText является первым видом для получения Фокуса, когда вы начинаете свою деятельность. Таким образом, вы можете надежно решить эту проблему без кода, просто установив исходный фокус на другой вид. Вы можете сделать это в XML, никакого кода не требуется.

Пример:

 <Button android:id="@+id/mybutton"> <requestFocus /> </Button>