C# 将项目添加到片段中的ActionBar

C# 将项目添加到片段中的ActionBar,c#,android,menu,android-actionbar,fragment,C#,Android,Menu,Android Actionbar,Fragment,我试图找出如何通过片段将项目添加到操作栏菜单。我的应用程序的main活动正在继承ActionBarActivity,我希望能够更改ActionBar上当前显示片段的项目 public class LoginFragment : BaseFragment { //... public override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState);

我试图找出如何通过
片段
将项目添加到
操作栏
菜单。我的应用程序的
main活动
正在继承
ActionBarActivity
,我希望能够更改
ActionBar
上当前显示
片段的项目

public class LoginFragment : BaseFragment
{
    //...

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

  • 在Fragment类的onCreateView()中,放置:

  • 在片段类中添加:

    @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上测试并工作过。为什么不为这项工作膨胀.xml文件呢?当然可以,但我在弄清楚如何访问需要操作的对象时遇到了困难<对于my
    Main活动
    的code>OnCreateOptions菜单
    要求参数为
    IMenu
    。这是从哪里来的?您可以创建一个自定义函数,只需在activity中创建一个全局引用,它将在OnCreateMenu中初始化。您只需从activity中的任何位置调用该函数。啊,我正在尝试查找OnCreateOptions菜单的覆盖。我不知道它返回的碎片无效。
    setHasOptionsMenu(true);
    
    @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;
         }