0

我已经在我的应用程序中通过列表实现了搜索方法 onSearchRequested(),它运行良好,我创建了 2 个活动,一个用于列表数据,另一个用于该表单的搜索结果

公共类 acitvity1 扩展 InterfaceBase {

    @Override
    ListAdapter makeMeAnAdapter(Intent intent) {

          return(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items));

    }       
}

以及包含搜索结果的活动 2

public abstract class Acitvity2 extends InterfaceBase {

   @Override
    ListAdapter makeMeAnAdapter(Intent intent) {

            ListAdapter adapter=null;

            if (intent.getAction().equals(Intent.ACTION_SEARCH)) {
                    String query=intent.getStringExtra(SearchManager.QUERY);
                    List<String> results=searchItems(query);

                    adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,results);
                    setTitle("Search : "+query);
            }
            return(adapter);
    }  
    private List<String> searchItems(String query) {
            SearchSuggestionProvider
                    .getBridge(this)
                    .saveRecentQuery(query, null);

            List<String> results=new ArrayList<String>();

            for (String item : items) {
                    if (item.indexOf(query)>-1) {
                            results.add(item);
                    }
            }
            return(results);
    }

所以它有可能使搜索结果出现在活动1中的回调活动中,并且清单文件中是否应该进行任何更改以寻求帮助

4

1 回答 1

0

You need to override onNewIntent like this:

@Override
protected void onNewIntent(Intent intent) {
    makeMeAnAdapter(intent);
}

Then include the search metadata in activity2, something like:

<meta-data android:name="android.app.searchable" android:resource="@xml/search" />
于 2012-04-24T10:41:02.773 回答