CodenameOne 中的电子商务应用程序

3

您好,我是一名CodenameOne的新手,现在正在使用CodenameOne资源编辑器创建一个电子商务应用程序,我已经使用多列表示产品。 我已经启用了复选框功能,其中我为所有项目获得了复选框。我的问题是,在状态机中如何通过代码获取用户选择的产品名称以及如何获取复选框是否被选中。我尝试实现findMultiList().getSelected(),但如果我选中或取消选中,它总是返回true。

请帮助我,如果您能告诉我如何将Google Drive集成到我的项目中,那将是非常好的,因为我需要从Excel表格中提取数据并在列表中填充它们。

2个回答

2
您需要获取模型并遍历其中的元素:
ListModel<Map<String, Object>> model = (ListModel<Map<String, Object>>)findMultiList(c).getModel();
ArrayList<Map<String, Object>> items = new ArrayList<>();
for(int iter = 0 ; iter < model.getSize() ; iter++) {
   Map<String, Object> current = model.getItemAt(iter);
   String checked = (String)current.get("emblem");
   if(checked != null && "true".equals(checked)) {
       items.add(current);
   }
}

我还没有尝试过这段代码,但它应该可以工作。请注意,“emblem”这个名称是MultiButton/MultiList默认使用的名称,但您可以将其更改为任何名称。
您可以在for循环上放置断点,并检查遍历时的映射元素,以了解其工作原理。

谢谢Shai,但是关于我的第二个问题,我该如何在我的项目中集成Google Drive呢?因为我需要从Excel表格中提取数据并将其填充到列表中。由于有键值,我可以将它们保存为键值,并通过哈希表从表格中填充数据。那么是否有任何库可用于与Google Excel表格即Google Drive集成呢? - user3517929
通常情况下,你应该将问题分解成单独的问题,因为这样更容易理解。就我个人而言,我不熟悉这样的API,但这很大程度上取决于你的用例。例如,我猜测Drive有将数据发布为CSV的选项,对此我们有CSVParser类。 - Shai Almog

0

Codename One目前还没有专门支持Google Drive API的功能... 不过,它支持Firebase(noSQL,因此不支持表格类型数据)。 这意味着您需要使用变量对进行操作。 不过,也有一些针对表格数据库的资源可供使用: https://www.codenameone.com/javadoc/com/codename1/db/Database.html

请查看以下库: https://github.com/shannah/cn1-data-access-lib (从Web访问数据,支持SQLite)

https://github.com/jegesh/cn1-object-cacher (从Web缓存数据库)

这些资源应该会对您的开发有所帮助,祝您好运 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接