【发布时间】:2019-04-18 08:55:50
【问题描述】:
我正在开发 Watson Conversation 聊天机器人。我一直在尝试在我的聊天机器人应用程序中实现“选项”响应类型。我的问题是“在 Android 中创建 'n' 个动态按钮,其中 n 是后端中存在的选项标签名称的数量(IBM Watson Conversation)”
我已经能够以文本形式检索标签名称。现在我必须将这些标签名称放在“可点击按钮”中。这样当用户点击按钮时,就会将一个值传递给后端(Watson Conversation API)。
这就是我从后端检索选项(响应类型)的方式。 Watson Conversation 以 JSON 形式发送回复。
标签名称检索码:
str = response.getOutput().getGeneric().get(i).getResponseType();
JSONArray arrayOptions = new JSONArray(response.getOutput().getGeneric().get(i).getOptions());
int j=0; //j is used to count the number of options
while (j<arrayOptions.length()){
final Message outMessage2 = new Message();
outMessage2.setMessage(response.getOutput().getGeneric().get(i).getOptions().get(j).getLabel());
outMessage2.setId("2");
System.out.println(outMessage2);
messageArrayList.add(outMessage2);
j++;
}
【问题讨论】:
-
上述代码sn-p存在于方法private void sendMessage()中。我需要将此 j 变量传递给类型为 protected 的 onCreate(Bundle savedInstanceState) 方法
-
“我需要将这个 j 变量传递给 onCreate...”——不,你不需要。只需在代码完成后创建并添加您的按钮。至于实际创建这些按钮,现场已有数百个示例和建议的解决方案。你尝试了哪些?您在实施过程中遇到了什么问题?
-
@Mike M.感谢您的回复。 “只需在您的代码完成时创建并添加您的按钮”。您能否详细说明或提供给我一个 sn-p?
标签: java android watson-assistant