在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().
方法。首先,必须确保从兼容性库(android.support.v4.view.MenuItemCompat
)中进行导入。如果
您使用ActionBarSherlock
,您必须import com.actionbarsherlock.view.MenuItem
。然后,您应该可以使用item.getActionView()
了。
老的
自2013年8月起,我祈祷人们投反对票以看看。您必须确保在第一种情况下,Android引入的OP的问题日期来自兼容性库(ActionBarCompactandroid.support.v4.view.MenuItemCompat)。即使使用ActionBarSherlock仍然是有效的选择,一个选项也将朝着ActionBarCompact的方向发展。
因此,另一种选择是使用它,当然,所有导入都必须来自支持库,例如android.supportimport com.v4actionbarsherlock.view.MenuItemCompatMenuItem。然后,使用item.getActionView()应该可以。