public override View NewView(Context context, ICursor cursor, ViewGroup parent) { if (cursorInflater == null) { cursorInflater = (LayoutInflater)context.GetSystemService(Context.LayoutInflaterService); } View view = cursorInflater.Inflate(Resource.Layout.file_row, parent, false); view.FindViewById(Resource.Id.group_name_vdots).Click += (sender, args) => { Handler handler = new Handler(Looper.MainLooper); handler.Post(() => { PopupMenu popupMenu = new PopupMenu(context, view.FindViewById(Resource.Id.group_name_vdots)); AccessManager.PreparePopup(popupMenu); int remove = 0; int edit = 1; popupMenu.Menu.Add(0, remove, 0, context.GetString(Resource.String.remove_from_filelist)).SetIcon(Resource.Drawable.ic_menu_delete_grey); TextView textView = view.FindViewById <TextView>(Resource.Id.file_filename); String filename = (string)textView.Tag; IOConnectionInfo ioc = new IOConnectionInfo { Path = filename }; if (FileSelectHelper.CanEditIoc(ioc)) { popupMenu.Menu.Add(0, edit, 0, context.GetString(Resource.String.edit)).SetIcon(Resource.Drawable.ic_menu_edit_grey); } popupMenu.MenuItemClick += delegate(object sender2, PopupMenu.MenuItemClickEventArgs args2) { if (args2.Item.ItemId == remove) { App.Kp2a.FileDbHelper.DeleteFile(filename); cursor.Requery(); } if (args2.Item.ItemId == edit) { var fsh = new FileSelectHelper(_activity, false, RequestCodeEditIoc); fsh.OnOpen += (o, newConnectionInfo) => { _activity.EditFileEntry(filename, newConnectionInfo); }; fsh.PerformManualFileSelect(filename); } }; popupMenu.Show(); }); }; return(view); }
private void ShowPopup(View anchor, string popupKey) { //PopupMenu popupMenu = new PopupMenu(this, FindViewById(Resource.Id.entry_user_name)); PopupMenu popupMenu = new PopupMenu(this, anchor); AccessManager.PreparePopup(popupMenu); int itemId = 0; foreach (IPopupMenuItem popupItem in _popupMenuItems[popupKey]) { popupMenu.Menu.Add(0, itemId, 0, popupItem.Text) .SetIcon(popupItem.Icon); itemId++; } popupMenu.MenuItemClick += delegate(object sender, PopupMenu.MenuItemClickEventArgs args) { _popupMenuItems[popupKey][args.Item.ItemId].HandleClick(); }; popupMenu.Show(); }