在片段xamarin android中不调用OnOptionsItemSelected

时间:2016-05-24 05:20:34

标签: android xamarin xamarin.android

在OnCreate中: SetHasOptionsMenu(true);

public override bool OnOptionsItemSelected(IMenuItem menu)
        {
            menu.SetChecked (true);
            switch (menu.ItemId) {
            case Resource.Id.selecta:
                Toast.MakeText (Application.Context, "Top", ToastLength.Long);

                return true;
            case Resource.Id.selectb:
                Toast.MakeText (Application.Context, "New", ToastLength.Long);

                return true;
            }
            return base.OnOptionsItemSelected (menu);

        }
        public override void OnCreateOptionsMenu(Android.Views.IMenu menu,MenuInflater inflater)
        {
            //MenuInflater.Inflate (Resource.Menu.Action_menu, menu);
            //menu.Clear();
            inflater.Inflate(Resource.Menu.Action_menu,menu);

            base.OnCreateOptionsMenu (menu,inflater);
        }

选中复选框的项目时。不调用OnOptionsItemSelected。

1 个答案:

答案 0 :(得分:1)

我猜你的Activity也有OnOptionsItemSelected的实现。

如果您想让Fragment有机会处理此事件,请将其删除或返回false

活动有机会首先处理此事件。因此,在为片段调用方法之前,首先在Activity上调用onOptionsItemSelected()。只有当Activity没有处理它时,片段才有机会处理它。