Открывается автоматическая всплывающая клавиатура Android

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

Это ошибка в 1,5? Могу ли я что-нибудь сделать?

Solutions Collecting From Web of "Открывается автоматическая всплывающая клавиатура Android"

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

 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 3.0, 3.1, 3.2, 4.0 – Редактор, используемый для компиляции (Eclipse 3.7)

Поместите «windowSoftInputMode =» stateHidden »в манифестный XML-файл вашего приложения для любой деятельности, которую вы хотите, чтобы клавиатура программного обеспечения оставалась скрытой. Это означает, что клавиатура не будет автоматически открываться, и пользователю придется« щелкнуть »по Текстовое поле, чтобы поднять его. Я искал почти час за то, что сработало, поэтому я думал, что поделюсь.

Этот код будет работать на всех версиях 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); } 

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

 android:windowSoftInputMode="stateHidden|adjustResize" 

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

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

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

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

 android:windowSoftInputMode="stateVisible" 

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

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

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

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

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

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

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

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

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

 InputMethodManager imm = (InputMethodManager)GetSystemService(Context.InputMethodService); imm.ShowSoftInput(_enterPin.FindFocus(), 0); 

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

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

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