2013-04-20 37 views
0

我使用ListView和Jsoup創建簡單的應用程序來顯示來自網站的照片,任何人都可以告訴我爲什麼模擬器每次都會崩潰?代碼有什麼問題?從網站到Android應用程序的照片

公共類MainActivity擴展活動{

private ListView listView; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.listview); 
    listView = (ListView) findViewById(R.id.listview); 
    final ArrayList list = new ArrayList(); 

    Document doc = null; 

    try { 

     doc = (Document) Jsoup.connect("http://mongol.co.il/").get(); 
     Elements divs = ((Elements) doc).select("img[src$=.jpg]"); 

     for (org.jsoup.nodes.Element div : divs) 
     { 
      list.add(div); 
     } 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

    ArrayAdapter adapter = new ArrayAdapter(this, 
      android.R.layout.simple_list_item_1, list); 
     listView.setAdapter(adapter); 


} 

}

+0

請添加您的系統崩潰日誌。 – 2013-04-20 12:41:05

+0

請提供來自logcat的錯誤細節。 – FireAndIce 2013-04-20 12:45:13

+0

致命異常:main java.lang.RuntimeException:無法啓動活動ComponentInfo {com.example.mongol/com.example.mongol.MainActivity}:java.lang.ClassCastException:android.app中的org.jsoup.nodes.Document。 ActivityThread.performLaunchActivity(ActivityThread.java:2663) – Avi2107 2013-04-20 13:02:59

回答

0

你好,我也有這個在我的應用程序。

的解決方法是相當簡單:

所有的網絡行爲都在Asyntask做或螺紋

我個人使用的AsyncTask這樣的:

 private class LoadImages extends AsyncTask<Void, Void, Void> { 

     @Override 
     protected void onPostExecute(Void result) { 
      // TODO Auto-generated method stub 
      super.onPostExecute(result); 
      // Here you can do any UI operations like textview.setText("test"); 
     } 

     @Override 
     protected Void doInBackground(Void... params) { 
      // TODO Auto-generated method stub 
Document doc = null; 

    try { 

     doc = (Document) Jsoup.connect("http://mongol.co.il/").get(); 
     Elements divs = ((Elements) doc).select("img[src$=.jpg]"); 

     for (org.jsoup.nodes.Element div : divs) 
     { 
      list.add(div); 
     } 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 
     return null; 
    } 
+0

非常感謝!這個類不應該擴展Activity嗎?那onCreate方法呢? – Avi2107 2013-04-20 13:14:57

0

不要讓http請求在您的onCreate,這將扔在ICS異常以上,我覺得,因爲你是阻止UI線程。

相關問題