2013-04-26 56 views
0

我想解析this site的文章的標題,並在Android應用程序的列表視圖中顯示它們。我的代碼看起來是這樣的:Jsoup解析與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()); 
     } 
    } 


} 

儘管這裏閱讀堆棧溢出很多文章我想不通爲什麼我的應用程式經常當我每次打開它時。

+0

如果你看看你的日誌,看到'NetWorkOnMainThreadException'然後搜索那個,你就會明白。 – wtsang02 2013-04-26 17:50:21

+0

發佈logcat將幫助人們幫助你! – 2013-04-26 17:52:06

+0

@ user2229269當你得到這樣的錯誤時,請始終發佈logcat。 – 2013-04-26 18:10:33

回答

0

As @ wtsang02指出,您正在主線程上執行網絡操作。你的processTitles邏輯應該在AsyncTask中完成。