android中API level11之前getActionView()的替代方法是什么?

sat*_*sat 38 android android-ui android-actionbar

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;
}
Run Code Online (Sandbox Code Playgroud)

Ada*_*mVe 87

您可以使用支持库中的MenuItemCompat.getActionView(MenuItem menuItem)来获取pre 11 API上的操作视图.


Yuw*_*wen 55

@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);
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅http://developer.android.com/guide/topics/ui/actionbar.html


Bla*_*elt 13

为了向后兼容,您可以使用ActionBarCompatActionBarScherlock.在这两种情况下,您都可以使用方法getActionView().您必须确保导入,在第一种情况下来自兼容性库( android.support.v4.view.MenuItemCompat).如果你使用ActionBarSherlock你必须import com.actionbarsherlock.view.MenuItem.然后你应该可以使用 item.getActionView().

自2013年8月起,我祈祷人们进行投票以便看一看.您必须确保OP的问题日期导入,Android在第一种情况下引入的是来自兼容性库(ActionBarCompactandroid.support.v4.view.MenuItemCompat).即使你使用ActionBarSherlock仍然是一个有效的选择,一个选项正朝着ActionBarCompact发展.

所以另一种选择是使用它,当然,所有import必须来自支持库,例如android.supportimport com.v4actionbarsherlock.view.MenuItemCompatMenuItem.然后你应该可以使用item.getActionView().