0

リストを介して onSearchRequested() 検索メソッドをアプリケーションに実装しましたが、うまく機能し、リストデータ用とそのフォームの検索結果用に 2 つのアクティビティを作成します

public class acitvity1 extends 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

次のようにonNewIntentをオーバーライドする必要があります。

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

次に、次のような検索メタデータをactivity2に含めます。

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