getActionView()
for action bar was introduced in API 11
, If I want backward compatibility what is the alternative for getActionView()
?
e.g.
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.action_bar_menu, menu);
final MenuItem item = menu.findItem(R.id.menuitem);
item.getActionView() //Works from API level 11
return true;
}
You can use MenuItemCompat.getActionView(MenuItem menuItem) from the support library to get the action view on pre 11 API.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_activity_actions, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
// Configure the search info and add any event listeners
...
return super.onCreateOptionsMenu(menu);
}
See http://developer.android.com/guide/topics/ui/actionbar.html for details
For backwards compatibility you can use either ActionBarCompat
or ActionBarScherlock
. In both cases you can use the method getActionView().
You have to be sure that the import, in the first case is from the compatibility library ( android.support.v4.view.MenuItemCompat
). If
you use ActionBarSherlock
you have to import com.actionbarsherlock.view.MenuItem
. Then you should be ok using item.getActionView()
.
Old
Since August 2013, and I pray people down-voting to take a look. You have to be sure that the OP's question date import, Android introduced in the first case is from the compatibility library ( ActionBarCompactandroid.support.v4.view.MenuItemCompat). Even though If you use ActionBarSherlock is still a valid choice, an option is moving towards ActionBarCompact.
So another option is to use it, and of course, all the importsyou have to came from the support library, e.g. android.supportimport com.v4actionbarsherlock.view.MenuItemCompatMenuItem. Then you should be ok using item.getActionView().
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With