Ошибка программы Android - PullRequest
       5

Ошибка программы Android

0 голосов
/ 17 марта 2011

Я написал эту программу для Android в качестве новостной ленты ... она прекрасно работает до тех пор, пока - в настоящее время - статья о focal.ie.Итак, первые 6 историй загружаются нормально, но потом не загружаются остальные, и я ломаю голову, пытаясь понять, почему.Любая помощь будет оценена.Вот кодСпасибо

package com.news;



import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class NewsActivity extends Activity {
    WebView mWebView;
    String test2 = "<html><body><table border=0 width=10 height=10>";
    Document docs;
    Document writing;

    String text(String link)
{
    String full ="<html><body><table border=0 cellpadding=2 cellspacing=2><tr><td>";;
    try {
         writing = Jsoup.connect(link).get();
    } catch (IOException e) {
        e.printStackTrace();
    }
    Element heading = writing.select("h2").first();
    Elements classname = writing.getElementsByClass("news");
    Elements items = classname.select("p");

    full = full + heading.text() + "<br>" + items.get(0).text() + "</td></tr>";
    Elements imgs2 = writing.select("img[src$=.jpg]");
    String picture = imgs2.get(1).absUrl("src");
    String newImg = "<img src=\"" + picture + "\"/ width =100 >";
    full = full + "<tr><td>" + newImg + "</td></tr>";
    full = full + "<tr><td>";

    for (int i = 1; i< items.size(); i++)
    {
        full = full + items.get(i).text();
    }

    full = full + "</td></tr></table></body></html>";
    return full;
}
public void main(String... args) 
{
    try 
    {
         docs = Jsoup.connect("http://www.dcu.ie/news/index.shtml").get();
    } 
    catch (IOException e) 
    {
        e.printStackTrace();
    }

    Elements imgs = docs.select("img[src$=.jpg]");
    Elements txt = docs.select("h2");

    Elements article = docs.getElementsByClass("date");
    Elements links = article.select("a[href]");

    for (int i = 1; i < imgs.size(); i++){
        String url = imgs.get(i).absUrl("src");
        String temp = links.get(i-1).absUrl("href");

        String temp2 = "<a href=\"" + temp + "\"/>";
        String newImg = temp2 + "<img src=\"" + url + "\"/ width =100 >";
        test2 = test2 + "<tr>";

        test2 = test2 + "<td>";
        test2 = test2 + " " + newImg + " ";
        test2 = test2 + "</td>";
        test2 = test2 + "<td>";
        test2 = test2 + " " + txt.get(i-1).text() + " " + temp2;
        test2 = test2 + "</td>";
        test2 = test2 + "</tr>";

        }
    test2 = test2 + "</table>";
    test2 = test2 + "</html></body>";

}

public void onCreate(Bundle savedInstanceState) {
    main();

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.setWebViewClient(new NewsClient());
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setDomStorageEnabled(true);

    mWebView.loadData(test2, "text/html", "utf-8");

}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
        mWebView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

private class NewsClient extends WebViewClient {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        String newUrl = text(url);
        view.loadData(newUrl, "text/html", "utf-8");
        return true;
    }
}
}

1 Ответ

0 голосов
/ 18 марта 2011

Я предполагаю, что отсутствующие закрывающие теги привязки вызывают проблемы.Я предполагаю, что парсер HTML не любит пустые теги привязки:

String temp2 = "<a href=\"" + temp + "\"/>";
String newImg = temp2 + "<img src=\"" + url + "\"/ width =100 >";
test2 = test2 + "<tr>";

должно быть:

String temp2 = "<a href=\"" + temp + "\" >";
String newImg = temp2 + "<img src=\"" + url + "\"/ width =100 >" + "</a>";
test2 = test2 + "<tr>";

и:

test2 = test2 + " " + txt.get(i-1).text() + " " + temp2;

должно быть:

test2 = test2 + temp2+ " " + txt.get(i-1).text() + " </a>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...