Скрыть Программную Клавиатуру Не Работает
Я разрабатываю на Droid Incredible (и также протестировал на 1.5 AVD эмуляторе), и одна из вкладок в моем виджете tab состоит из listview и строки с EditText и кнопкой отправки (для функции чата). Я использую следующее, чтобы закрыть программную клавиатуру после нажатия кнопки Отправить, но это не работает. Это идентично коду, который я нашел в другом месте, который люди отклонили как правильный.
Видишь, я что-то упустил?
// in Button's onClick():
EditText chatTextBox = (EditText) findViewById(R.id.chat_entry);
// Handle button click ...
chatTextBox.setText("");
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(chatTextBox.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
Я также попытался изменить флаг на 0. Нет удача. Кто-нибудь знает, что случилось??
****редактировать**** просто понял, что я был первоначально с помощью hideSoftInputFromInputMethod()
вместо hideSoftInputFromWindow()
. Однако изменение его не заставило его работать...
3 ответа:
Изменение HIDE_IMPLICIT_ONLY на 0 сделало это (после того, как я изменил на
hideSoftInputFromWindow()
изhideSoftInputFromInputMethod()
).Однако я не уверен, почему HIDE_IMPLICIT_ONLY не работает, так как я явно не открываю клавиатуру с длинным нажатием на меню.
Еще один вариант, чтобы предотвратить его активность в AndroidManifest.xml-файл
Android: windowSoftInputMode= "stateAlwaysHidden" - этот метод предотвратит загрузку/отображение клавиатуры при загрузке действия. Но при нажатии на редактируемый компонент, например edittext, откроется клавиатура. идеально подходит для моих требований.
<activity android:name=".Name" android:label="@string/app_name" android:windowSoftInputMode="stateAlwaysHidden">
1.сначала свяжите маркер редактирования текста с клавиатурой и откройте
i. einputMethodManager.showSoftInput(_edittext, 0);
/ / здесь _edittext-это экземпляр вида2.клавиатура будет скрыта автоматически, если текст редактирования будет скрыт с экрана
3.редактировать текст по-прежнему на экране, но вы хотите скрыть клавиатуру, а затем использовать код ниже
imm.hideSoftInputFromWindow(_edittext.getWindowToken(), 0);
/ / это не сработает, если edittext не находится на экране или не сфокусирован.