0

ListView と Jsoup を使用して、Web サイトの写真を表示するシンプルなアプリを作成していますが、エミュレータが毎回クラッシュする理由を誰か教えてください。コードの問題は何ですか?

public class MainActivity extends Activity{

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);


}

}

4

2 に答える 2

0

こんにちは、アプリケーションにもこれがありました。

解決策は非常に簡単です。

すべてのネットワーキング アクションは、非同期タスクまたはスレッドで実行する必要があります

私は個人的に次のような 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;
    }
于 2013-04-20T12:46:57.313 に答える
0

で http リクエストを作成しないでください。UI スレッドをブロックしているためonCreate ICS 以降では例外がスローされます。

于 2013-04-20T12:40:50.433 に答える