public class NewsGetThread extends Thread {
private String url;
private Handler handler;
public static final String KEY_HTTP_ACK="KEY_HTTP_ACK";
public NewsGetThread(String url, Handler handler) {
this.url=url;
this.handler=handler;
}
@Override
public void run() {
try {
//获取网页文档
String urlBase="http://tw.wzu.edu.cn";
Document doc = Jsoup.connect(url).timeout(10000).get();
Elements els = doc.getElementsByAttributeValue("class","box_right_main");//解析数据
Element el = els.get(0);
Elements lis = el.select("li");
ArrayList<NewsItem> newslist = new ArrayList<>();
for (int i=0;i<lis.size();i++){
//根据html标签获取需要的内容
Element li = lis.get(i);
Element el_a = li.select("a").get(0);
//标题及其对应的链接
String title = el_a.text();
String href0= el_a.attr("href");
String href = urlBase+href0.substring(5);
//发布时间
Element span = li.select("span").get(0);
String pubTime = span.text();
Log.d("test",pubTime);
Log.d("test",href);
Log.d("test",href0);
Log.d("test",title);
NewsItem newsItem = new NewsItem(pubTime,title,href);
newslist.add(newsItem);
}
String str = el.toString();
Message msg = handler.obtainMessage();
Bundle bundle = new Bundle();
bundle.putSerializable(KEY_HTTP_ACK,newslist);
msg.setData(bundle);
handler.sendMessage(msg);
} catch (IOException e) {
e.printStackTrace();
}
}
}
12-19 11:47:20.797 9563-9646/com.example.yangjie.yj_final_work E/AndroidRuntime: FATAL EXCEPTION: Thread-175
Process: com.example.yangjie.yj_final_work, PID: 9563
java.lang.NullPointerException
at com.example.yangjie.yj_final_work.NewsGetThread.run(NewsGetThread.java:60)