Android: Диалог поиска не появляется - PullRequest
0 голосов
/ 20 апреля 2011

В настоящее время я пытаюсь реализовать поиск в моем приложении.Я следовал Google Tutorial , но теперь, когда я нажимаю кнопку «Поиск» (на устройстве / эмуляторе), ничего не появляется.Я не уверен, почему.

Мой searchable.xml Файл:

<?xml version="1.0" encoding="utf-8"?>
<searchable
  xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/label_search"
    android:hint="@string/search_hint"
    android:includeInGlobalSearch="true"
  >

</searchable>

Это часть манифеста Android для Search-Activity:

 <!-- Search Activity -->
 <activity android:name=".SearchNotes">
    <intent-filter>
        <action android:name="android.intent.action.SEARCH" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    <meta-data android:name="android.app.searchable"
        android:resource="@xml/searchable" />
 </activity>

TheКод, который заполняет мою ListActivity:

private void searchAndDisplay(String query){
    SQLiteDatabase db = db_con.getReadableDatabase();
    final Cursor c = db.rawQuery(
            "SELECT headline, id as '_id' FROM entry WHERE " +
            "(headline LIKE '%?%') OR (content LIKE '%?%') ",
            new String[]{query, query});
    this.startManagingCursor(c);
    final ListAdapter searchAdapter = new SimpleCursorAdapter(
            this, 
            android.R.layout.simple_list_item_2, c, 
            new String[] {"headline", "_id"}, 
            new int[] {android.R.id.text1, android.R.id.text2});
    this.setListAdapter(searchAdapter);
    db.close();
}

Это не работает ни в эмуляторе, ни на моем Android-устройстве.Что мне здесь не хватает?

Ответы [ 3 ]

4 голосов
/ 20 апреля 2011

Есть ли у вас

<activity android:name=".OtherActivity" ... >
    <!-- enable the search dialog to send searches to SearchableActivity -->
    <meta-data android:name="android.app.default_searchable"
               android:value=".SearchNotes" />
</activity>

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

2 голосов
/ 20 апреля 2011

Боюсь, если android:includeInGlobalSearch="true" вызывает проблему, так как для ее реализации необходимо выполнить следующие шаги. Попробуйте удалить android:includeInGlobalSearch="true" из searchable.xml и посмотрите, поможет ли это

Чтобы предоставить предложения по последним запросам, вам необходимо:

  • Реализация поиска с возможностью поиска, как описано в разделе Создание интерфейса поиска.
  • Создайте поставщика контента, который расширяет SearchRecentSuggestionsProvider, и объявите его в манифесте приложения.
  • Измените конфигурацию с возможностью поиска, указав информацию о поставщике контента, который предоставляет подсказки для поиска.
  • Сохранение запросов к поставщику контента при каждом выполнении поиска.

Ссылка: http://developer.android.com/guide/topics/search/adding-recent-query-suggestions.html

0 голосов
/ 11 апреля 2012

Все выглядит нормально в вашем коде.Вам нужно только после запуска приложения нажать кнопку Меню в эмуляторе или на своем мобильном телефоне.Это откроет опцию поиска.Выберите это, и вы сможете искать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...