2014-02-24 47 views
0

我试图添加ActionBar按钮,但不必为每个活动创建单独的.xml文件。这里是代码:无法将按钮动态添加到ActionBar

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     menu.add(0, 0, 0, R.string.ic_refresh_str).setIcon(R.drawable.ic_action_refresh); 
     return true; 
    } 

该按钮不会出现。如果我修改代码以下面的代码,它的工作原理:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 

     menu.add(0, 0, 0, R.string.ic_refresh_munawwat).setIcon(R.drawable.ic_action_refresh) 
      .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 
     return true; 
    } 

但问题是,安卓的minSdkVersion为7,这里是错误消息我得到setShowAsAction:

呼叫需要API级别11(当前分钟是7): android.view.MenuItem#setShowAsAction

我如何动态地添加按钮,并继续支持minSdk 7?

+0

http://developer.android.com/reference/android/ support/v4/view/MenuItemCompat.html – Luksprog

回答

0

您可以尝试Android的支持-V4磁带库或Actionbar Sherlock

+0

我忘了提及我正在使用AppCompat – Omar

0

的解决方案是使用已弃用的功能MenuCompat.setShowAsAction

@SuppressWarnings("deprecation") 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuItem item = menu.add(0, 0, 0, R.string.ic_refresh_txt).setIcon(R.drawable.ic_action_refresh); 
     MenuCompat.setShowAsAction(item, 2); 

     return true; 
    }