Открывается автоматическая клавиатура Android на экране

В одном из моих приложений есть "открывающий экран" (в основном меню), в котором есть EditText, а затем несколько Button s. Проблема в том, что некоторые из моих пользователей сообщают, что при открытии приложения автоматически появляется экранная клавиатура, даже если они не касаются EditText. Насколько я могу судить, все эти пользователи используют HTC Hero.

Это ошибка в 1.5? Что-нибудь я могу с этим поделать?

114
23 марта '10 в 4:12
источник поделиться
10 ответов

Вы можете использовать следующую строку кода в методе onCreate, чтобы убедиться, что клавиатура появляется только тогда, когда пользователь нажимает на EditText

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
236
23 марта '10 в 12:36
источник

Связанные вопросы


Похожие вопросы

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

Это работает для Android 3.0, 3.1, 3.2, 4.0 - Редактор, используемый для компиляции (Eclipse 3.7)

Поместите 'windowSoftInputMode = "stateHidden" в файл манифеста приложения для EACH, который вы хотите, чтобы клавиатура программного обеспечения оставалась скрытой. Это означает, что клавиатура не будет автоматически вставлена, и пользователь должен будет 'click' в текстовое поле, чтобы поднять его. Я искал почти час для чего-то, что сработало, поэтому я думал, что поделюсь.

78
25 янв. '12 в 1:14
источник

Этот код будет работать на всех версиях Android:

@Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_login);

 //Automatic popping up keyboard on start Activity

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

 or

 //avoid automatically appear android keyboard when activity start
     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
 }
5
31 дек. '16 в 11:46
источник

Добавьте это в свой AndroidManifest.xml:

android:windowSoftInputMode="stateHidden|adjustResize"

Он отлично работает.:)

5
09 июня '16 в 8:38
источник

Вы можете использовать либо это в методе onCreate() активности

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

или вставьте этот код в теги активности в AndroidManifest.xml

android:windowSoftInputMode="stateVisible"
2
20 окт. '16 в 0:57
источник

Вы можете добавить одну строку кода в Android Mainfest.xml под тегом активности

 <activity
        android:name="com.sams.MainActivity"
        android:windowSoftInputMode="stateVisible" >
 </activity>

это может вам помочь.

1
11 июля '14 в 12:50
источник

В этой версии Android, когда изображение раздувается, фокус будет установлен на первый настраиваемый элемент управления по умолчанию - и если нет физической клавиатуры, появится экранная клавиатура.

Чтобы исправить это, явным образом задаю фокус в другом месте. Если фокус установлен на что угодно, кроме EditText, экранная клавиатура не появится.

Вы пробовали проверить это, запустив Android 1.5 в эмуляторе?

1
23 марта '10 в 4:22
источник

Вы можете сделать это программно, как

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);

или установите android:windowSoftInputMode="stateHidden" в <activity tag внутри AndroidManifest.xml

0
19 авг. '15 в 12:02
источник

Это сработало для меня:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
0
19 июля '17 в 21:39
источник
InputMethodManager imm = (InputMethodManager)GetSystemService(Context.InputMethodService);
        imm.ShowSoftInput(_enterPin.FindFocus(), 0);

* Это для Android.xamarin и FindFocus() - он ищет представление в иерархии, внедренной в это представление, которое в настоящее время имеет фокус, так как у меня есть _enterPin.RequestFocus() перед вышеуказанным кодом, таким образом, он показывает клавиатуру для _enterPin EditText *

0
13 янв. '17 в 13:59
источник

Посмотрите другие вопросы по меткам или Задайте вопрос