在Android的API level11之前getActionView()的替代方法是什么?
操作栏的getActionView()
在API 11
中引入,如果我想向后兼容getActionView()
的替代方法是什么?
例如
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; }
为了向后兼容,您可以使用ActionBarCompat
或ActionBarScherlock
。 在这两种情况下,您都可以使用getActionView().
方法getActionView().
您必须确保导入,第一种情况是从兼容性库( android.support.v4.view.MenuItemCompat
)。 如果您使用ActionBarSherlock
,则必须import com.actionbarsherlock.view.MenuItem
。 那么你应该可以使用item.getActionView()
。
旧
自2013年8月以来,我祈祷人们投票表决看看。 您必须确保OP的问题date导入,第一种情况下引入的Android来自兼容性库(ActionBarCompactandroid.support.v4.view.MenuItemCompat)。 即使如果您使用ActionBarSherlock仍然是一个有效的select,一个选项正在走向ActionBarCompact。
所以另一个select是使用它,当然,所有importsyou必须来自支持库,例如android.supportimport com.v4actionbarsherlock.view.MenuItemCompatMenuItem。 那么你应该可以使用item.getActionView()。
您可以使用支持库中的MenuItemCompat.getActionView(MenuItem menuItem)来获得前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); }
有关详细信息,请参阅http://developer.android.com/guide/topics/ui/actionbar.html