Yalantis / Context-Menu.Android

You can easily add awesome animated context menu to your app.

Home Page:https://yalantis.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to use in java: setMenuItemClickListener?

panovvitalik opened this issue · comments

How I can implement menu item click on java? Which parameter type I should provide to setMenuItemClickListener method

ContextMenuDialogFragment contextMenuDialogFragment = ContextMenuDialogFragment.newInstance(menuParams);
contextMenuDialogFragment.setMenuItemClickListener(???);

He show me the tint:

Required type: Function2

What is it?

If I try to provide this with implemented: MenuItem.OnMenuItemClickListener interface, I get such error:

Required type:
Function2
Provided:
OnMenuItemClickListener

We just need a lambda:
contextMenuDialogFragment.setMenuItemClickListener((v, position) -> {

        return null;
    });

I have added the lambda, and then ? what do I have to do to make it works ? Thanks

My actual java code is :

private void initMenuFragment() {

    MenuParams menuParams = new MenuParams();
    menuParams.setActionBarSize((int) getResources().getDimension(R.dimen.tool_bar_height));
    menuParams.setMenuObjects(getMenuObjects());
    menuParams.setClosableOutside(false);        // permet de fermer le menu en cliquant sur une zone sans bouton
    mMenuDialogFragment = ContextMenuDialogFragment.newInstance(menuParams);
    mMenuDialogFragment.setItemClickListener(this);

}

private List<MenuObject> getMenuObjects() {

    List<MenuObject> menuObjects = new ArrayList<>();

    MenuObject close = new MenuObject();
    close.setResource(R.drawable.ic_close);

    MenuObject cam = new MenuObject("LIVE  CAMERAS");
    cam.setMenuTextAppearanceStyle(R.style.Context_Menu);
    cam.setResource(R.drawable.ic_camera);

    menuObjects.add(close);
    menuObjects.add(cam);

    return menuObjects;

}

@Override
public void onMenuItemClick(View clickedView, int position) {
    if (position == 1) {
        //
    } else if (position == 2) {
        //
    }
}