2013-03-28 3 views
0

Необходимо проанализировать текст и поместить его в список. Я делаю так:Jsoup неправильный анализ синтаксиса

try { 
      Document doc = Jsoup.connect(URL).get(); 

      Elements main = doc.select("div.day"); 
      for (i = 0; i < main.size(); i++) { 
       Element m = main.get(i); 

       Elements date = m.select("h2"); 
       for (j = 0; j < date.size(); j++) { 
        Element m1 = date.get(j); 
        dates = m1.select("a").attr("href");  
       } 

       Elements titles = m.select("div.ep_box"); 
       for (k = 0; k < titles.size(); k++) { 
        Element tts = titles.get(k); 
        title = tts.select("h3 a[href]").text(); // titles 
        time = tts.select("small").text(); // time 
        url = tts.select("h3 a").attr("href"); // links 

        if (title.contains(inputSearch)) { // search type 
         Order o = new Order(); 
         o.setTextName(title); 
         o.setTextEpisode(time); 
         o.setTextDate(dates); 
         o.setDetailsUrl(url); 
         listItems.add(o); 

System.out.println("Title: " + title + "\n" + "Time: " + time + "\n" + "Link: " + url + "\n" + "========================"); 
        } 
       } 
      }    

     } 

В журналах все это прекрасно:

03-28 17:50:29.421: I/System.out(13409): Title: Naruto SD: Rock Lee no Seishun Full-Power Ninden 
03-28 17:50:29.421: I/System.out(13409): Time: Ep: 48 (17:30) - TV Tokyo 
03-28 17:50:29.421: I/System.out(13409): Link: /show/601/Naruto_SD%3A_Rock_Lee_no_Seishun_Full-Power_Ninden 
03-28 17:50:29.421: I/System.out(13409): ======================== 
03-28 17:50:29.449: I/System.out(13409): Title: Naruto Shippuuden 
03-28 17:50:29.449: I/System.out(13409): Time: Ep: 303 (19:30) - TV Tokyo 
03-28 17:50:29.449: I/System.out(13409): Link: /show/18/Naruto_Shippuuden 

Но в эмуляторе в списке показаны только последние заголовки, время и ссылки. Как я могу это исправить?
Спасибо

+1

Вы вызываете notifyDataSetChanged(); в любом месте? –

+0

Да, я вызываю notifyDataSetChanged(); –

ответ

0

Я думаю, что проблема в вашем object o. Я думаю, вы должны создать его для каждого нового элемента внутри вашей петли нового:

Order o = new Order(); 
o.setTextName(title); 
o.setTextEpisode(time); 
o.setTextDate(dates); 
o.setDetailsUrl(url); 
listItems.add(o); 

иначе изменяются с каждой итерации той же ссылки на объект О и то причина, почему вы получите только один элемент списка.

+0

Извините, забыли добавить этот код в сообщение. –

+0

Вы правы. Благодарю. –

Смежные вопросы