【发布时间】:2015-09-17 20:43:49
【问题描述】:
我正在自己做一个项目。我遇到了一个问题,我希望你们中的一些人愿意帮助我。我想将某个站点的 html 表解析为 android listview。我已经有一些代码,但不幸的是我没有在我的列表视图中看到表格数据。所以出了点问题。我希望你能帮助我。
我知道调用正确的数据,因为当我将代码放在 Safari 控制台中时,我会得到我选择的表的结果。所以我认为 doc.select();是对的。
不幸的是,问题仍未解决,因为我得到了 NetworkOnMainThreadException。我知道我必须对 Async 做点什么。我查看了更多网站,但找不到关于 Async 的好的解释。如果有人能帮助我,将不胜感激。
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_clubkampioenschappen_singleen_dubbel);
this.setTitle("Clubkampioenschappen Single en Dubbel");
ArrayList<String> list = new ArrayList<String>();
Document doc = null;
try {
doc = Jsoup.connect("https://tennisnaarden.planmysport.com/portal/page/pmsportal30/TVNaarden/Toernooien/Clubtoernooi").get();
} catch (IOException e) {
e.printStackTrace();
}
Elements elements = doc.select("#pcnt1383_8158836_1383_4326089_4326089 td:first-child");
//list.add("Onderdelen");
for(int i=0;i<elements.size();i++)
{
list.add(elements.get(i).text());
System.out.println(elements.get(i).text());
}
ListAdapter OnderdeelAdapater = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
ListView Onderdelen = (ListView) findViewById(R.id.Onderdelen);
Onderdelen.setAdapter(OnderdeelAdapater);
}
【问题讨论】:
-
如果您的“尝试”块失败,您需要稍后返回。相反,您尝试使用“select”语句从 doc 读取,但如果“try”失败,doc 将为 NULL,并且您将遇到另一个错误。
标签: android html listview jsoup android-arrayadapter