4

searchwidget と listview を使用したアクティビティを取得しました。誰かが検索した場合、クエリに一致しないすべてのアイテムはもちろん削除されます。だから私はリストのすべての項目を削除し、それを小さなリストで埋めたいと思っています。そこで、 onSearchRequested メソッドの Bundle に追加して、ArrayList を新しい検索可能なアクティビティに渡そうとしました。しかし、このメソッドは、検索を実行するときに呼び出されません。

これは私が得たコードです:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.sign_player);

    // Associate searchable configuration with the SearchView
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    SearchView searchView = (SearchView) findViewById(R.id.sv_sign_search_name);
    searchView.setSearchableInfo(searchManager
            .getSearchableInfo(getComponentName()));
    searchView.setIconifiedByDefault(false);
    searchView.setFocusable(false);
    // Get the intent, verify the action and get the query
    Intent intent = getIntent();

    if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
        String query = intent.getStringExtra(SearchManager.QUERY);
        Bundle bundle = intent.getBundleExtra(SearchManager.APP_DATA);
        player = bundle.getParcelableArrayList("players");
        player = searchPlayers(query);
        showPlayers();
    } else {
        initializeScreen();
    }
}


@Override
public boolean onSearchRequested() {
     Bundle appData = new Bundle();
     appData.putParcelableArrayList("players", player);
     startSearch(null, false, appData, false);
     return true;
 }
4

1 に答える 1