SearchView OnQueryTextListener,OnActionExpandListener什么都不做

时间:2015-04-16 17:06:16

标签: android android-actionbar searchview

我正在尝试在我的项目中实现SearchView,但我的onQueryTextSubmit,onQueryTextChange,onMenuItemActionExpand和onMenuItemActionCollapse不起作用。我的minsdkversion是17。

我的XML:

<item android:id="@+id/action_search"
        android:title="@string/search_title"
        android:icon="@drawable/ic_home"
        android:visible="true"
        yourapp:showAsAction="always|collapseActionView"
        yourapp:actionViewClass="android.support.v7.widget.SearchView" />

我的JavaMain:

public class MainActivity extends ActionBarActivity implements OnQueryTextListener, OnActionExpandListener {
  ...

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.menu_main, menu);

        MenuItem searchItem = menu.findItem(R.id.action_search);

        SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
        searchView.setOnQueryTextListener(this);

        MenuItemCompat.setOnActionExpandListener(searchItem, this);

        searchView.setIconifiedByDefault(true);

        return super.onCreateOptionsMenu(menu);
    }

   @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // toggle nav drawer on selecting action bar app icon/title
        if (mDrawerToggle.onOptionsItemSelected(item)) {
            return true;
        }
        // Handle action bar actions click
        return super.onOptionsItemSelected(item);

    }

   @Override
    public boolean onPrepareOptionsMenu(Menu menu) {
        // if nav drawer is opened, hide the action items

        boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
        menu.findItem(R.id.action_search).setVisible(!drawerOpen);

        return super.onPrepareOptionsMenu(menu);
    }

    @Override
    public boolean onQueryTextSubmit(String query) {
        Toast.makeText(this,"testing",Toast.LENGTH_SHORT).show();
        return false;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        Toast.makeText(this,"testing",Toast.LENGTH_SHORT).show();
        System.out.println(newText + "hello");
        return false;
    }

    @Override
    public boolean onMenuItemActionExpand(MenuItem item) {
        android.util.Log.d("AppLog", "onMenuItemActionExpand");
        Toast.makeText(this,"testing",Toast.LENGTH_SHORT).show();
        return true;
    }

    @Override
    public boolean onMenuItemActionCollapse(MenuItem item) {
        android.util.Log.d("AppLog", "onMenuItemActionCollapse");
        Toast.makeText(this,"testing",Toast.LENGTH_SHORT).show();
        return true;
    }

没有任何内容使用日志打印,并且没有任何内容显示Toast

我希望你能帮助我。

0 个答案:

没有答案
相关问题