2017-06-30 4 views
1

MultiListを使用してjsonレコードを表示しようとしています。私はここで行われたことに従いましたhttps://www.codenameone.com/manual/graphics.html私は1レコードしか返しませんでした(このimageを見てください)。応答はこのから来たwebserviceMultiListは、webservice(コードネームワン)の結果をすべて表示しません。

以下は私のコードです。私が間違っている場所を親切に教えてください。

@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; 

答えて

1

インデントを修正する必要があります。 forループはすべての要素をループしているので、Xマルチリストを追加するX要素についてはすべてをカプセル化します。

これは、デバッガでコードをステップオーバーどうかを瞬時に見ることが何か...

0

が行われています。下の行をメソッドの外に移動し、クラスの中に配置しました。

ArrayList> data = new ArrayList <>();

関連する問題