0

アクション アイテムとして検索ビューがあります。検索実行イベントを傍受したいことを除いて、すべてが正常に機能しています。その時点で、検索結果から新しいアクティビティが開始されます。その場合、前のアクティビティで検索ビューを折りたたみたいと思います。そのため、ユーザーが検索結果アクティビティから戻ったときに、アクション メニューを折りたたむ必要があります。

4

1 に答える 1

0
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //Used to put dark icons on light action bar

        //Create the search view
        final SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());
        searchView.setQueryHint("Search");

        menu.add(Menu.NONE,Menu.NONE,1,"Search")
            .setIcon(R.drawable.abs__ic_search)
            .setActionView(searchView)
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

        searchView.setOnQueryTextListener(new OnQueryTextListener() {
            @Override
            public boolean onQueryTextChange(String newText) {
                if (newText.length() > 0) {
                    // Search

                } else {
                    // Do something when there's no input
                }
                return false;
            }
            @Override
            public boolean onQueryTextSubmit(String query) { 

                InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(searchView.getWindowToken(), 0);

                Toast.makeText(getBaseContext(), "dummy Search", Toast.LENGTH_SHORT).show();
                setSupportProgressBarIndeterminateVisibility(true);

                Handler handler = new Handler(); 
                handler.postDelayed(new Runnable() { 
                     public void run() { 
                         setSupportProgressBarIndeterminateVisibility(false);
                     } 
                }, 2000);

                return false; }
        });

        return true;
    }

SearchViewメソッドで折りたたむことができると思います。onQueryTextSubmit上記のコードを参照してください

于 2013-06-29T19:21:18.763 に答える