在片段中向ActionBar添加项目

时间:2014-10-20 17:48:42

标签: c# android menu android-actionbar fragment

我正在尝试通过ActionBar找出如何将项目添加到Fragment菜单中。我的应用MainActivity继承了ActionBarActivity,我希望能够根据ActionBar当前显示的内容更改Fragment上的项目。

public class LoginFragment : BaseFragment
{
    //...

    public override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetHasOptionsMenu(true);
        // this.Activity.MenuInflater.Inflate(Resource.Menu.something, ???);
    }
}

1 个答案:

答案 0 :(得分:1)

here

复制
   1. Remove or comment any onOptionsItemSelected() ,onMenuItemSelected() even onPrepareOptionMenu() and leave in Activity onCreateOptionsMenu() only:

    @Override
    public boolean onCreateOptionsMenu(Menu menu){
    MenuInflater inflater=getMenuInflater();
    inflater.inflate(R.layout.menu, menu);
    return true;
    }
  1. 在Fragment类中,在onCreateView()中,输入:

    setHasOptionsMenu(true);
    
  2. 在Fragment类中添加:

    @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
     super.onCreateOptionsMenu(menu,inflater);      
     }
    
    @Override
     public boolean onOptionsItemSelected(MenuItem item){           
             switch(item.getItemId()){
             case R.id.action_insert:
                //doing stuff
             return true;
             }
             return false;
         }
    
  3. 在Android 4.4上测试并使用