2013-04-20 110 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线程。

相关问题