android - 操作栏sherlock添加不必要的按钮

时间:2013-05-23 09:41:41

标签: android actionbarsherlock

我使用动作栏sherlock并在菜单中设置自定义布局:

<item
    android:id="@+id/action_menu"
    android:actionLayout="@layout/menu_item"
    android:icon="@drawable/b_menu"
    android:orderInCategory="1"
    android:showAsAction="always"/>
<item
    android:id="@+id/action_audio"
    android:actionLayout="@layout/audio_item"
    android:icon="@drawable/b_audio"
    android:orderInCategory="2"
    android:showAsAction="always"/>
<item
    android:id="@+id/action_mySong_details"
    android:actionLayout="@layout/my_song_properties"
    android:icon="@drawable/b_mysong"
    android:orderInCategory="2"
    android:showAsAction="always"/>

控制我使用的项目:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    /** Create an option menu from res/menu/items.xml */
    getSherlock().getMenuInflater().inflate(R.menu.main_tab, menu);

    /** Get the action view of the menu item whose id is search */
    View v = (View) menu.findItem(R.id.action_menu).getActionView();
    Button b = (Button) v.findViewById(R.id.btnMenu);
    return super.onCreateOptionsMenu(menu);
}

由于某种原因,操作栏添加了不必要的项目,是否有人知道这种情况如何发生?

2 个答案:

答案 0 :(得分:0)

您正在使用操作栏sherlock。所以使用SupportMenuInflater。

  public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
  com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
  inflater.inflate(R.layout.menu, menu);
  }

  public boolean onOptionsItemSelected(MenuItem item) {
  // Handle item selection
  switch (item.getItemId()) {
  case R.id.action_menu:
     // Intent i=new Intent(A.this,B.class);
      //startActivity(i);
      return true;
  }
  return false;

}

答案 1 :(得分:0)

我发现了错误:我从所有项目中删除了android:orderInCategory,现在没关系,我这个例子我不需要这个选项。