您好我是CodenameOne的新手我正在使用CodenameOne资源编辑器创建电子商务应用程序,我使用多列表来显示产品。我已经检查了复选框功能,其中我获得了所有项目的复选框。我的问题是通过statemachine中的代码如何获取用户检查的产品名称以及如何检查复选框是否已选中。我试过实现findMultiList()。getSelected()但如果我检查r uncheck它会返回true。
请帮助我,如果您能告诉我如何在我的项目中集成谷歌驱动器,那将是非常好的,因为我需要从Excel工作表中提取数据并将其填充到列表中。
答案 0 :(得分: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);
}
}
我没有尝试过这段代码,但应该可以使用。请注意,名称“会徽”是MultiButton / MultiList使用的默认名称,但您可以将其更改为任何内容。
您可以在for循环上放置一个断点,并在遍历它们时检查它们,看看它是如何工作的。
答案 1 :(得分: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数据库的缓存)
这些资源应该有所帮助;祝您发展顺利:)