繁体   English   中英

自定义菜单项单击后如何关闭Android菜单?

[英]How to close an Android menu after custom menu item click?

单击Xamarin Forms Android自定义菜单项后出现问题。

在我的MainActivity类中,我有:

public override void OnActionModeStarted(ActionMode mode)
{
    IMenu menu = mode.Menu;
    menu.Add("To Notes");
    menu.GetItem(0).SetOnMenuItemClickListener(new MyMenuItemOnMenuItemClickListener(this));

    base.OnActionModeStarted(mode);
}

我的处理程序如下:

public class MyMenuItemOnMenuItemClickListener : Java.Lang.Object, IMenuItemOnMenuItemClickListener
{
    private MainActivity mContext;
    public Func<string, Task<string>> EvaluateJavascript { get; set; }

    public MyMenuItemOnMenuItemClickListener(MainActivity activity)
    {
        this.mContext = activity;
    }

    public bool OnMenuItemClick(IMenuItem item)
    {
        //Web is a static class declared elsewhere
        Web.CopyToMainNotes();

        return true;
    }
}

单击“ To Notes”菜单项时,无论OnMenuItemClick处理程序中的菜单如何,菜单都不会消失。

有任何想法吗? 提前致谢。

尝试下面的代码:(使用ActionMode.finish()

public override void OnActionModeStarted(ActionMode mode)
{
    IMenu menu = mode.Menu;
    menu.Add("To Notes");
    menu.GetItem(0).SetOnMenuItemClickListener(new MyMenuItemOnMenuItemClickListener(this,mode));

    base.OnActionModeStarted(mode);
}

处理器

public class MyMenuItemOnMenuItemClickListener : Java.Lang.Object, IMenuItemOnMenuItemClickListener
{
    private MainActivity mContext;
    public Func<string, Task<string>> EvaluateJavascript { get; set; }
    private ActionMode actionMode;

    public MyMenuItemOnMenuItemClickListener(MainActivity activity,ActionMode mode)
    {
        this.mContext = activity;
        this.actionMode=mode;
    }

    public bool OnMenuItemClick(IMenuItem item)
    {
        //Web is a static class declared elsewhere
        Web.CopyToMainNotes();
        //close menu if menu item is clicked
        if(actionMode!=null){
        actionMode.finish()
        }
        return true;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM