Intereting Posts
Android – проблема с классом R Как поймать отчет о сбое моего приложения Как реализовать механизм рециркуляции представления для PagerAdapter? Лучший способ для службы, который запускает Activity для связи с ним Android-студия dalvik vm не может найти класс AlertDialog setOnDismissListener не работает ListView Creator вызван, но нет других методов ActionBarSherlock – пользовательский фон из панели действий с разделителем Ошибка использования RecyclerView: у указанного дочернего элемента уже есть родительский элемент Как я могу разместить ProgressBar справа от панели инструментов? Изменение цвета панели навигации, Android Как я могу использовать onCreateOptionsMenu во Фрагменте в вкладке Activity? (Шерлок ActionBar) Видимость кнопки в VideoView после использования videoView.setZOrderOnTop (true); Android Разработка Android Eclipse – Cant Создайте новый проект для Android – Mac OS Android BLE Объект BluetoothGatt остается подключенным и запускает onCharacteristicChanged () даже после вызова для отключения ()

Как игнорировать нажатие клавиши «Поиск» в диалоговом окне «Диалог»

Я ранее расширил класс Dialog для своих диалогов, и мне пришлось использовать следующий сегмент кода в моих диалогах, чтобы они не были уволены при нажатии клавиши поиска телефона:

 setOnKeyListener(new OnKeyListener() { public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_SEARCH) return true; // pretend we've processed it else return false; // pass on to be processed as normal } }); 

Теперь я использую класс DialogFragment для своих диалогов. К сожалению, DialogFragment имеет ту же проблему, что и Dialog в этом диалоговом окне отклоняются при нажатии клавиши поиска телефона (независимо от состояния отмены диалога). Двусложная проблема заключается в том, что DialogFragment не имеет метода setOnKeyListener поэтому вышеуказанный сегмент кода больше не применяется.

Кто-нибудь знает, как я могу получить свои диалоги (при показе), чтобы игнорировать нажатия клавиш поиска ?

Примечание. Я попытался добавить этот сегмент кода к методу onKeyUp моей активности, но, к сожалению, метод onKeyUp моей активности не onKeyUp если DialogFragment экземпляр DialogFragment . Вместо этого, раздражающе, экземпляр DialogFragment отклоняется.

Попробуй это.
Внутри вашего DialogFragment.Onresume

  getDialog().setOnKeyListener(new OnKeyListener() { public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event){ if (keyCode == KeyEvent.KEYCODE_SEARCH) return true; // pretend we've processed it else return false; // pass on to be processed as normal } });