Telegram Bot自定义键盘JAVA

时间:2018-04-06 13:19:41

标签: java keyboard telegram

我有自己的自定义键盘,如计算器(1,2,3..0)。当我点击数字按钮时,它会发送消息<但我只想在输入全数字时发送信息。 示例:我想发送1000,但它发送1,然后是0,然后是0 .. 我的键盘:

ReplyKeyboardMarkup keyBoardMarkup = new ReplyKeyboardMarkup();
    List<KeyboardRow> keyboard = new ArrayList<>();
    KeyboardRow row = new KeyboardRow();
    for (int i = 1; i < 10; i++) {
      row.add(Integer.valueOf(i).toString());
      if (i % 3 == 0) {
        keyboard.add(row);
        row = new KeyboardRow();
      }
    }
    row.add("0");
    keyboard.add(row);
    keyBoardMarkup.setKeyboard(keyboard);
    keyBoardMarkup.setResizeKeyboard(true);

1 个答案:

答案 0 :(得分:0)

您不能使用这样的普通键盘按钮。当您按下它们时,它们会将该值作为新消息发送。

您可以将inline keyboards用于此类案件。记录所有按钮单击并编辑包含内联键盘的消息。通过这种方式,它也会有更好的用户界面。

你需要使用这两件事:

  1. editMessageText:用户单击按钮时编辑消息。例如,当用户触摸按钮1时,则编辑包含按钮的消息。然后保存此消息的最后编辑版本。当用户按下另一个按钮时,对此按钮执行相同操作。在这种情况下,您的按钮和消息将像程序一样工作而不发送新消息。
  2. InlineKeyboardMarkup:要执行第1节中说明的相同操作,请使用此标记。您将为此标记添加内联键盘按钮。它们像普通的KeyboardButtons一样工作。