Android-поиск из поиска активности - PullRequest
1 голос
/ 13 апреля 2011

У меня есть активность, которая содержит список.Через Андроид на SearchRequested () я реализовал поиск.Результаты отображаются в виде списка с тем же адаптером в другом действии.Пока работает нормально.

Кроме того, я хочу иметь возможность выполнять поиск из этой второй операции, показывая новые результаты в том же списке.

Мой AndroidManifest.xml для двух операций:

<activity android:name=".ListActivity" android:label="List">
    <meta-data android:name="android.app.default_searchable" android:value=".SearchActivity" />
</activity>

<activity android:name=".SearchActivity" android:label="Results">
    <intent-filter>
        <action android:name="android.intent.action.SEARCH" />
    </intent-filter>
    <meta-data android:name="android.app.searchable" android:resource="@xml/search" android:value=".SearchActivity" />
</activity>

SearchActivity's onResume ():

@Override
protected void onResume() {
    super.onResume();
    Intent queryIntent = getIntent();
    String value = queryIntent.getStringExtra(SearchManager.QUERY);
    setView(value);
}

Метод setView () выполняет цикл foreach через все объекты, добавляя их в массив результатов, который используетсядля нового адаптера, который отображается в списке.

ca = new CustomAdapter(this, R.layout.customadapter, resultArray);
list.setAdapter(pa);
list.invalidate();

При попытке поиска из второй операции появляется панель поиска, я могу ввести свое значение поиска, отправить его - но список не меняется (идаже клавиатура остается).Чего не хватает?

Редактировать: Пытался облегчить понимание.

1 Ответ

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

Найден тот вопрос , который описывает вид той же проблемы.

Вместо переопределения onResume () я должен переопределить onNewIntent ()

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);      
    String value = intent.getStringExtra(SearchManager.QUERY);
    setView(value);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...