Intereting Posts
Преимущество использования Parcelable вместо сериализации объекта Android Не удалось запустить эмулятор: не удается запустить программу Как получить доступ к файлам Lollipop для файлов Android через NDK? Получить текущее время в заданном часовом поясе: андроид Не удалось найти INI-файл в $ ANDROID_AVD_HOME или в $ HOME / .android / avd Что такое UID на Android? Разработка приложений для Android: создаются два значка, и мне нужен только один Создание среднего элемента для застревания в заголовке (ScrollView / ListView) Как модульный анализ JSON Как правильно выводить данные JSON с помощью PHP Может ли видеовидео воспроизводить видео, хранящееся на внутренней памяти? Вызывается BaseAdapter notifyDatasetChanged (), но getView () никогда не вызывается Как получить ширину и высоту изображения? Сертификату доверяют ПК, но не на Android Использование Guice для встраивания зависимостей в конструктор активности Android

Поиск в виджетном вызове OnNewIntent дважды

У меня есть активность, в которой я хочу искать. Когда я нажимаю для поиска, событие OnNewIntent вызывается дважды … Что я делаю неправильно?

Я создаю Searchview следующим образом

 public override bool OnCreateOptionsMenu(IMenu menu) { searchView = new SearchView(this); var searchManager = (SearchManager)GetSystemService(Context.SearchService); var searchableInfo = searchManager.GetSearchableInfo(ComponentName); searchView.SetSearchableInfo(searchableInfo); var search_item = menu.Add(new Java.Lang.String("Search")); search_item.SetActionView(searchView); search_item.SetShowAsAction(ShowAsAction.IfRoom); var edit = menu.Add(0, insertItemID, 0, "Insert"); edit.SetShowAsAction(ShowAsAction.IfRoom); edit.SetIcon(Android.Resource.Drawable.IcMenuAdd); return base.OnCreateOptionsMenu(menu); } 

Журнал:

 10-17 07:45:45.491 I/ActivityManager( 900): START {act=android.intent.action.SEARCH flg=0x10000000 cmp=Intranet.Intranet/intranet.screens.ContactListActivity (has extras)} from pid 2971 10-17 07:45:47.562 W/EGL_emulation( 2971): eglSurfaceAttrib not implemented 10-17 07:45:47.562 I/ActivityManager( 900): START {act=android.intent.action.SEARCH flg=0x10000000 cmp=Intranet.Intranet/intranet.screens.ContactListActivity (has extras)} from pid 2971 10-17 07:45:48.472 D/OpenGLRenderer( 2971): Flushing caches (mode 0) 10-17 07:45:48.481 D/dalvikvm( 900): GC_CONCURRENT freed 559K, 13% free 7991K/9159K, paused 1ms+1ms 10-17 07:45:48.500 W/InputManagerService( 900): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@b48b3470 10-17 07:45:48.561 D/dalvikvm( 963): GC_CONCURRENT freed 389K, 41% free 6027K/10183K, paused 0ms+0ms 

Solutions Collecting From Web of "Поиск в виджетном вызове OnNewIntent дважды"

Я предполагаю, что вы сделали свою поисковую активность одиночной вершиной и переопределенной onNewIntent для вызова setIntent до обработки намерения поиска. Если это так, это ошибка в SearchView при использовании аппаратной клавиатуры эмулятора.

http://books.google.com/books?id=OFXJXbCXjTgC&pg=PT771&lpg=PT771&dq=android+search+intent+sent+twice+bug&source=bl&ots=Ora1AJjh4A&sig=9yFBjCwJ1ARbXePHzcPYpG_QdFQ&hl=en&sa=X&ei=bbddUpbZCcLi4AOiioCIAw&ved=0CD8Q6AEwAw#v=onepage&q= андроид% 20search% 20intent% 20sent% 20twice% 20bug & F = ложь

Вы можете отключить аппаратную клавиатуру в своем эмуляторе, выбрав Настройки -> Launguage & input и нажмите «По умолчанию».

Если вы используете мягкую клавиатуру, вы должны видеть ее только один раз.

У меня была аналогичная проблема с DatePickerDialog … похоже, это ошибка api. Он работает на Android 2.2, но не на android 4.0+. Мое решение было:

 int timesCalled = 0; public void yourMethod(){ timesCalled += 1; if ((timesCalled % 2) == 0) { //do your stuff here } } 

Это не самое ясное решение, но оно работает для меня. Надеюсь, это поможет.

Почему бы вам не попробовать что-то подобное …

https://github.com/antoniolg/LimeApp/blob/master/src/com/limecreativelabs/app/actionbarsearch/ActionBarSearchActivity.java

Пример приложения проекта здесь …

https://play.google.com/store/apps/details?id=com.limecreativelabs.app

И вы можете прочитать спецификации проекта здесь …

https://github.com/antoniolg/LimeApp