2013-04-26 3 views
0

this site의 기사 제목을 구문 분석하고 Android 앱의 목록보기에 표시하려고합니다. 내 코드는 다음과 같습니다 : 내 응용 프로그램은 내가 그것을 열 때마다 충돌 계속 왜 알아낼 수 없습니다 스택 오버플로 여기에 글을 많이 읽는에도 불구하고Android 앱으로 Jsoup 구문 분석

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

+0

logcat을 게시하면 사람들이 여러분을 도울 수 있습니다! –

+0

@ user2229269 이러한 오류가 발생하면 항상 logcat을 게시하십시오. –

답변

0

@ wtsang02가 지적 하듯이, 메인 스레드에서 네트워크 작업을 수행하고 있습니다. processTitles 논리는 AsyncTask 내에서 수행되어야합니다.