Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OnActionExpandListener in menuitem not working. How to fix it?

I am developing an Android application which works from API Level 14.

I have an item in my menu file

  <item
        android:id="@+id/menu_search"
        android:actionViewClass="android.widget.SearchView"
        android:icon="@drawable/ic_action_action_search"
        android:orderInCategory="3"
         android:showAsAction="always"/>

I want to know the expansion and collapse of this search view,i tried this code but it is not working

    @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.activity_search, menu);
            MenuItem mSearchItem = menu.findItem(R.id.menu_search);

            mSearchItem.setOnActionExpandListener( new OnActionExpandListener() {

                @Override
                public boolean onMenuItemActionExpand(MenuItem item) {
                    // TODO Auto-generated method stub
                    Toast.makeText(MainActivity.this, "onMenuItemActionExpand", 1)
                     .show();
                    return true;
                }

                @Override
                public boolean onMenuItemActionCollapse(MenuItem item) {
                    // TODO Auto-generated method stub
                    Toast.makeText(MainActivity.this, "onMenuItemActionExpand", 1)
                     .show();
                    return true;

                }
            });
    }

}

Why am i not getting the Toasts?

I also tried code form Handling collapsible action views, it is also not working! Why these things are not working?

EDIT

I can get it work using

mSearchView.addOnLayoutChangeListener(new OnLayoutChangeListener() {

            @Override
            public void onLayoutChange(View v, int left, int top, int right,
                    int bottom, int oldLeft, int oldTop, int oldRight,
                    int oldBottom) {

                SearchView searchView = (SearchView) v;
                if (searchView.isIconified()) {
                       }
                       else{
                        }
           }
   });

But it is very slow!

like image 496
user2364935 Avatar asked Sep 12 '13 10:09

user2364935


1 Answers

Was having similar issue the solution is ( commented by the asker, I am just positing so it can get more emphasis):

add android:showAsAction="always|collapseActionView" to your menu item.

 <item android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:title="@string/action_search"
        android:showAsAction="always|collapseActionView"
        android:actionViewClass="android.widget.SearchView"
        android:queryHint = "@string/search_hint"/>
like image 99
dsharew Avatar answered Oct 15 '22 11:10

dsharew