bagaimana menambahkan pencarian di actionbar sherlock

Saya menggunakan sherlock bilah tindakan. Sekarang saya ingin menambahkan opsi pencarian ke bilah tindakan dan maksud pencarian Editteks ke aktivitas lain.

ada yang bisa bantu saya?


person sajad aln    schedule 20.02.2013    source sumber
comment
Ini akan menjadi bantuan penuh stackoverflow.com/questions/11690525/   -  person Triode    schedule 20.02.2013
comment
Pelatihan ini tidak dapat membantu saya. Saya ingin opsi pencarian dengan tombol pencarian ketika mengklik tombol bermaksud EditText ke aktivitas lain.   -  person sajad aln    schedule 20.02.2013


Jawaban (1)


Lakukan sesuatu seperti ini

@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;
}
person Androider    schedule 25.02.2013
comment
Anda dapat menggunakan getBaseContext() alih-alih konteks. omong-omong konteks adalah konteks aktivitas (yaitu ini). - person Androider; 22.02.2014