เพิ่มการค้นหาในแถบการกระทำ Sherlock ได้อย่างไร

ฉันกำลังใช้แถบการกระทำ Sherlock ตอนนี้ฉันต้องการเพิ่มตัวเลือกการค้นหาลงในแถบการกระทำและตั้งใจค้นหาข้อความแก้ไขในกิจกรรมอื่น

ใครสามารถช่วยฉันได้บ้าง?


person sajad aln    schedule 20.02.2013    source แหล่งที่มา
comment
สิ่งนี้จะช่วยได้เต็ม stackoverflow.com/questions/11690525/   -  person Triode    schedule 20.02.2013
comment
การฝึกอบรมครั้งนี้ไม่สามารถช่วยฉันได้ ฉันต้องการตัวเลือกการค้นหาด้วยปุ่มค้นหาเมื่อคลิกที่เจตนา EditText ไปยังกิจกรรมอื่น   -  person sajad aln    schedule 20.02.2013


คำตอบ (1)


ทำอะไรแบบนี้

@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
คุณสามารถใช้ getBaseContext() แทนบริบทได้ โดยวิธีการ บริบทก็คือบริบทของกิจกรรม (เช่น สิ่งนี้) - person Androider; 22.02.2014