- 
                Notifications
    You must be signed in to change notification settings 
- Fork 12
MenuAPI
        Amir Ali Omidi edited this page Mar 5, 2018 
        ·
        2 revisions
      
    The Menu API allows you to create inline keyboards easily.
To use this MenuAPI you need to include it in your pom.xml:
<dependency>
    <groupId>com.jtelegram</groupId>
    <artifactId>jtelegrambotapi-menus</artifactId>
    <version>LATEST</version>
</dependency>
To build a SimpleMenu:
SimpleMenu menu = SimpleMenu.builder().bot(telegramBot).build();
With this method, you're essentially bootstrapping a Menu. Once that is done, you can add a row of buttons to this Menu using the menu#addRow method.
For example:
AtomicInteger integer = new AtomicInteger();
menu.addRow(MenuRow
     .from(SimpleMenuButton.builder()
           .label("Test")
           .onPress((simpleMenuButton, callbackQueryEvent) -> {
                    simpleMenuButton.setLabel("Another Test: " + integer.getAndIncrement());
                    return true;
             })
            .build()
      ));
Once this is complete, we have to essentially tell the API who we want to display this menu to. This is simply done using:
menu.addViewer(InlineMenuViewer.builder().inlineMessageId(inlineMessageId).build());
And finally, we register it:
MenuHandler.registerMenu(menu);