在片段中向ActionBar添加项

本文关键字:添加 ActionBar 片段 | 更新日期: 2023-09-27 18:27:08

我正试图弄清楚如何通过Fragment将项目添加到ActionBar菜单中。我的应用程序的MainActivity继承了ActionBarActivity,我希望能够更改ActionBarFragment当前显示的项目。

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

在片段中向ActionBar添加项

从此处复制

   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;
         }
    

在Android 4.4 上测试和工作