将对象从Jsoup添加到ArrayList

诺埃尔·浸信会

我试图将一堆对象(从JSoup)添加到数组列表中。由于某种原因,没有添加对象。JSoup查询是正确的,因为我在将它们添加到for循环中时打印了结果。任何帮助,将不胜感激。

public List<MainGridItem> fruitItem = new ArrayList<>();


    Thread downloadThread = new Thread(new Runnable() {
        @Override
        public void run() {
            Document doc = null;
            try {
                doc = Jsoup
                        .connect("http://banana-mango.com/hello.htm")
                        .get();
                Elements fruits = doc.select("p[align=center]");
                for (int i = 0; i < fruits.size(); i++) {
                    MainGridItem gr = new MainGridItem(fruits.get(i).select("img").attr("abs:src"),fruits.get(i).text().trim(),fruits.get(i).select("a").attr("abs:href"));
                    //System.out.println(gr.getStuff+gr.getMore+gr.getAgain);
                    fruitItem.add(gr);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    });
    downloadThread.start();
苏海尔·梅塔(Suhail Mehta)

我认为您是Thread中添加元素downloadThread并使用ArrayListin Ui因此,您的代码中存在同步问题。

如果您只想通过com进行通讯,则可以执行点赞(仅限伪代码)

 public List<MainGridItem> fruitItem = new ArrayList<>();
    Handler handler = new Handler();


        Thread downloadThread = new Thread(new Runnable() {
            @Override
            public void run() {
                Document doc = null;
                try {
                    doc = Jsoup
                            .connect("http://banana-mango.com/hello.htm")
                            .get();
                    Elements fruits = doc.select("p[align=center]");
                    for (int i = 0; i < fruits.size(); i++) {
                        MainGridItem gr = new MainGridItem(fruitItem.get(i).select("img").attr("abs:src"),fruitItem.get(i).text().trim(),fruitItem.get(i).select("a").attr("abs:href"));
                        //System.out.println(gr.getStuff+gr.getMore+gr.getAgain);
                        fruitItem.add(gr);
                    }
               handler.post(new Runnable() {
                    @Override
                    public void run() {
                        // Access your arrayList Here and do Ui stuff
                    }
                });
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });
        downloadThread.start();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章