java - 解析服务器查询列表然后添加到容器列表

标签 java codenameone parse-server parse4cn1

我的 parse4cn1 API 终于可以与 Codename One 一起使用了!我很高兴它有效,但我在从查询获取列表然后将其添加到容器列表以便显示在我的应用程序屏幕上时遇到问题。

我使用此菜单在数据库中添加数据:

public void addMenu() {

        final Form addMenu = new Form("Menu");
        addMenu.setLayout(new BoxLayout(BoxLayout.Y_AXIS));

        Button back = new Button("Back to Main Menu");

        ParseObject po = ParseObject.create("mytable");

        List<String> list = new ArrayList<String>();
        list.add("Book's Title: " + "Iron Maiden");
        list.add("Book description: " + "Heavy Metal");
        list.add("Author: " + "Bruce");
        list.add("Donor: " + "Unknown");
        list.add("Date of subscription: " + "29/03/2018");
        list.add("Book Status: " + "Available");

        po.put("codeID", list);

        try {

            po.save();

        } catch (com.parse4cn1.ParseException e) {

            Dialog.show("Err", "Something went wrong.", "OK", null);
        }

        addMenu.add(back);
        addMenu.show();    

        back.addActionListener(new ActionListener() 
        {
            public void actionPerformed(ActionEvent ev) 
            {
                new StateMachine("/theme");
            }
        });
    }

然后我使用这个菜单来查询数据:

public void infoMenu() {

            final Form infoMenu = new Form("Book Info");
            infoMenu.setLayout(new BoxLayout(BoxLayout.Y_AXIS));

            Container list = new Container();
            list.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
            list.removeAll();

            Button back = new Button("Back to Main Menu");

            ParseQuery<ParseObject> query = ParseQuery.getQuery("mytable");
            query.whereExists("codeID");

            List<ParseObject> results = null;

            try {

                results = query.find();
                //HOW TO ADD RESULTS TO THE CONTAINER LIST?

            } catch (com.parse4cn1.ParseException e) {

                Dialog.show("Err", "Something went wrong.", "OK", null);
            }

            infoMenu.add(list);
            infoMenu.add(back);
            infoMenu.show();

    back.addActionListener(new ActionListener() 
    {
        public void actionPerformed(ActionEvent ev) 
        {
            new StateMachine("/theme");
        }
    });
}

我的问题是如何将结果添加到容器列表?

最佳答案

if(!results.isEmpty()) {    
   int index = 0;       
   int size = results.size();
   for(;index < size;++index) {
   list.add(btn = new 
   MultiButton(results.get(index).getString("Title")));
   addListener(btn);
}

关于java - 解析服务器查询列表然后添加到容器列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49553468/

相关文章:

java - OSGI 无法使用 javax.ws.rs 启动 bundle 'missing requirement'

java - 调用另一个类中的方法会导致 NullPointerException

java - 如何避免 codenameone 中的表单重叠?

codenameone - com.codename1.components.MediaPlayer 是否支持 HLS 自适应比特率流

java - 在 Android Studio 中与 JDBC 斗争

java - 无法从 java 读取属性文件

java - 如何在代号一中做一个圆形的Progress Bar?

javascript - 解析服务器登录返回一个用户,但 req.user 未定义

swagger - 使用 swagger 填充解析服务器架构

node.js - 解析服务器设置用户 ACL 并分配角色