Java 多列表未显示来自webservice的所有结果(代码名1)
我正在尝试使用多列表显示一些json记录。我遵循了这里所做的,但我的只返回了一条记录(请看这个)。对此作出了回应 下面是我的代码。请告诉我哪里错了Java 多列表未显示来自webservice的所有结果(代码名1),java,codenameone,Java,Codenameone,我正在尝试使用多列表显示一些json记录。我遵循了这里所做的,但我的只返回了一条记录(请看这个)。对此作出了回应 下面是我的代码。请告诉我哪里错了 @Override protected void beforeFormA(Form f) { Style s = UIManager.getInstance().getComponentStyle("Button"); FontImage p = FontImage.createMateri
@Override
protected void beforeFormA(Form f) {
Style s = UIManager.getInstance().getComponentStyle("Button");
FontImage p = FontImage.createMaterial(FontImage.MATERIAL_PORTRAIT, s);
EncodedImage placeholder = EncodedImage.createFromImage(p.scaled(p.getWidth() * 3, p.getHeight() * 4), false);
getattractive();//fetch results from webservice and store inside response variable
ArrayList arr = (ArrayList) response.get("results");
for (Object m:arr){
Map ma = (Map)m;
address =(String) ma.get("formatted_address");
name=(String)ma.get("name");
icon=(String)ma.get("icon");
ArrayList<Map<String, Object>> data = new ArrayList<>();
data.add(createListEntry(name,address,icon));
DefaultListModel<Map<String, Object>> model = new DefaultListModel<>(data);
MultiList ml = new MultiList(model);
ml.getUnselectedButton().setIconName("icon_URLImage");
ml.getSelectedButton().setIconName("icon_URLImage");
ml.getUnselectedButton().setIcon(placeholder);
ml.getSelectedButton().setIcon(placeholder);
f.add(BorderLayout.CENTER, ml);
}
}
private Map<String, Object> createListEntry(String name, String addr, String coverURL) {
Map<String, Object> entry = new HashMap<>();
entry.put("Line1", name);
entry.put("Line2", addr);
entry.put("icon_URLImage", coverURL);
entry.put("icon_URLImageName", name);
return entry;
@覆盖
格式前受保护的空白(表格f){
样式s=UIManager.getInstance().getComponentStyle(“按钮”);
FontImage p=FontImage.createMaterial(FontImage.MATERIAL_肖像,s);
EncodedImage占位符=EncodedImage.createFromImage(p.scaled(p.getWidth()*3,p.getHeight()*4),false);
getattractive();//从webservice获取结果并存储在响应变量中
ArrayList arr=(ArrayList)response.get(“结果”);
对于(对象m:arr){
Map ma=(Map)m;
地址=(字符串)ma.get(“格式化的_地址”);
name=(字符串)ma.get(“name”);
icon=(字符串)ma.get(“icon”);
ArrayList数据=新的ArrayList();
添加(createListEntry(名称、地址、图标));
DefaultListModel=新的DefaultListModel(数据);
MultiList ml=新的MultiList(型号);
ml.getUnselectedButton().setIconName(“icon_URLImage”);
ml.getSelectedButton().setIconName(“图标图片”);
ml.getUnselectedButton().setIcon(占位符);
ml.getSelectedButton().setIcon(占位符);
f、 添加(BorderLayout.CENTER,ml);
}
}
私有映射createListEntry(字符串名称、字符串地址、字符串覆盖URL){
Map entry=newhashmap();
输入。输入(“第1行”,名称);
输入。输入(“第2行”,地址);
输入.put(“图标\ URL图像”,封面URL);
输入。输入(“图标名称”,名称);
返回条目;
您应该修复缩进。for循环封装了所有内容,因此您可以在所有元素上循环,而对于X元素,您可以添加X个多列表
如果您使用调试器跳过代码,您会立即看到这一点…完成。我将下面的行移出方法,并将其放在类中 ArrayList>data=新建ArrayList()