学习菜单之菜单和上下文菜单

没找到菜单控件,书上说可以用xml文件方式实现,以后在研究。

注:菜单需要按menu键才能看见,但我的avd模拟器menu键一直不可用,折腾了半天也未解决,后从网上看到可以通过电脑键盘的,为便于查阅单独建了一个笔记。

一、菜单的的代码实现

        public override bool OnCreateOptionsMenu( IMenu menu)
        {
            base.OnCreateOptionsMenu(menu);
            IMenuItem m1 = menu.Add(0, Android.Views.Menu .First, Android.Views.Menu.None, "测试1");
            IMenuItem m2 = menu.Add(0, 11, 1, new Java.Lang.String( "test 2"));
            return true ;
        }
        public override bool OnMenuItemSelected( int featureId, IMenuItem item)
        {
            if (item.ItemId == 1)
            {
                return true ;
            }
            else if (item.ItemId == 11)
            {
                return true ;
            }
            return false ;
        }

二、上下文菜单的代码实现

套用树上的话“上下文菜单是针对指定视图(控件)显示的,它们位于视图的上下文中”。

下面是ImageView的上下文菜单代码。

    public class MainActivity : Activity
    {
        int count = 1;

        ImageView iv;

        protected override void OnCreate( Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView( Resource.Layout .Main);

            // Get our button from the layout resource,
            // and attach an event to it
            Button button = FindViewById<Button >(Resource. Id.MyButton);

            button.Click += delegate { button.Text = string .Format("{0} clicks!", count++); };

            iv = FindViewById< ImageView>(Resource .Id.iv);
            RegisterForContextMenu(iv);
        }
        public override void OnCreateContextMenu( IContextMenu menu, View v, IContextMenuContextMenuInfo menuInfo)
        {
            base.OnCreateContextMenu(menu, v, menuInfo);
            Java.Lang. ICharSequence str0 = new Java.Lang.String( "Context Menu");
            Java.Lang. ICharSequence str1 = new Java.Lang.String( "item1");
            Java.Lang. ICharSequence str2 = new Java.Lang.String( "item2");
            Java.Lang. ICharSequence str3 = new Java.Lang.String( "item3");
            menu.SetHeaderTitle(str0);
            menu.Add(str1);
            menu.Add(str2);
            menu.Add(str3);
        }
    }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值