我正在尝试解析this site文章的标题,并在Android应用中的列表视图中显示它们。我的代码看起来像这样:
public class MainActivity extends Activity {
ArrayList<String> mTitles = new ArrayList<String>();
ListView mListView;
ArrayAdapter<String> mAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListView = (ListView) findViewById(R.id.listView);
processTitles();
mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, mTitles);
mListView.setAdapter(mAdapter);
}
private void processTitles() {
String URL = "http://beep.tv2.dk/nyheder";
try {
Document doc = Jsoup.connect(URL).userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19").timeout(10000).get();
Elements titles = doc.select("h2[class=title");
for(Element title: titles) {
mTitles.add(title.text());
}
if(mTitles.size() == 0) {
mTitles.add("Empty result");
}
} catch (Exception ex) {
ex.printStackTrace();
mTitles.clear();
mTitles.add("Exception: " + ex.toString());
}
}
}
尽管在Stack Overflow上阅读了很多文章,但我无法弄清楚为什么每次打开它时我的应用程序都会崩溃。
答案 0 :(得分:0)
正如@ wtsang02指出的那样,你正在主线程上进行网络操作。您的processTitles逻辑应该在AsyncTask中完成。