将从按钮侦听器获取的数据显示到列表-代号一

to display the data obtained from button listener to list- codename one

我有一个按钮可以显示从 json 获得的数据。下面是我的按钮操作代码。我需要帮助来显示获得的数据以列出。

@Override
   protected void onMain_ButtonAction(final Component c, ActionEvent event) {

        ConnectionRequest r = new ConnectionRequest() {
           Hashtable h;

             @Override
            protected void postResponse() {

            }

            @Override
            protected void readResponse(InputStream input) throws IOException {

                InputStreamReader reader = new InputStreamReader(input);

               JSONParser p = new JSONParser();
               h = p.parse(new InputStreamReader(input));

                Hashtable response = p.parse(reader);

                 Hashtable feed = (Hashtable)response.get("root");

                for (Object s : h.values()) {
                        Vector vec = new Vector(100);
                         vec = (Vector)s;

                   int i;
                  for(i = 0; i<vec.size(); i++){

                     Hashtable<String, String> ht= (Hashtable<String, String>) vec.get(i);
                      System.out.println(ht.get("location"));
                   // findLabel().setText(ht.get("location"));

                }


                }
            }




        };
       r.setUrl("http://ruslanapp.demo.capitaleyenepal.com/vodka-mobile-interface/getData/locations");
       r.setPost(false);
       InfiniteProgress prog = new InfiniteProgress();
       Dialog dlg = prog.showInifiniteBlocking();
       r.setDisposeOnCompletion(dlg);
       NetworkManager.getInstance().addToQueue(r);

   }

我想将上面从rm btn获得的数据列到下面的列表中。我该怎么做??

 @Override
   protected boolean initListModelList1(List cmp) {
       cmp.setModel(new com.codename1.ui.list.DefaultListModel(new String[] {"Item 1", "Item 2", "Item 3"}));


       return true;

   }

您完成了大部分工作,我建议避免使用列表并使用无限容器。 PropertyCross 演示几乎具有以下功能(包括 JSON):https://www.udemy.com/learn-mobile-programming-by-example-with-codename-one/

要完成上面的代码,请创建上面的模型 ArrayList,例如假设您使用的是 MultiList:

// define this in the class variables:
private ArrayList<Map<String, String>> modelData = new ArrayList<Map<String, String>>();

// then in the code (I assumed stuff about your JSON, correct the 
// code to extract the data correctly, just set the hashmap values
for (Object s : h.values()) {
   Collection<Map<String, String>>) data = (Collection<Map<String, String>>))s;
   for(Map<String, String> ht : data) {
      String location = ht.get("location");
      HashMap<String, String> entry = new HashMap<String, String>();
      entry.put("Line1", location);
      modelData.add(entry);
   }
 }

然后在:

@Override
protected boolean initListModelList1(List cmp) {
   cmp.setModel(new DefaultListModel(modelData));
   return true;
}

请注意,您应该使用 showForm() 来显示 postResponse 方法中的下一个表单。