2014-03-13 7 views
0

웹 사이트 http://www.mtn.co.ug/Mobile-Plans/PayAsYouGo/MTN-PerMinute.aspx에서 테이블에 포함 된 데이터를 검색하고 Android 애플리케이션에서 사용하여 업데이트 할 때 애플리케이션의 정보가 또한 업데이트되었습니다. 그러나 나는 안드로이드에 매우 익숙하지 않다. 그래서 htmlcleaner 및 jsoup/json을 사용하여 데이터를 검색하는 데 도움이 필요합니다.웹 페이지의 테이블 (클래스)에서 데이터를 검색하여 android에서 사용하기

고맙습니다.

답변

0

MTN yello lol. 나이지리아에서 사용했습니다. 아래 당신이

TextView textView; 
    Document doc = Jsoup.connect("http://www.mtn.co.ug/Mobile-Plans/PayAsYouGo/MTN-PerMinute.aspx").timeout(90000) 
           .ignoreHttpErrors(true).get(); 

     for (Element Yello: doc.select("div tbody:contains(Bundle):eq(6) tr td"))) { 

    textView.setText(Yello.text()); 

         } 

행운 남자에게 jsoup 라이브러리에 대한 자세한 내용을 보려면 http://jsoup.org/cookbook/에 갈 필요가 다음 이미 안드로이드를 KNW 가정을 수행하는 방법에 대한 샘플입니다

+0

조지 감사합니다. 하지만 앱이 실행될 때마다 시간이 초과됩니다. asynchTask도 표시 할 수 있습니다. – Kinny

+0

좋습니다. 다른 질문입니다. 도움이된다면 대답으로 표시하십시오. 힌트, 당신은 인터넷에서 천천히 또는 웹 사이트가 테이블에 너무 많은 데이터를 가지고 사이트에서 다운로드 한 dat을 처리하기 위해 asyntask 메서드 안에 넣어해야합니다. 또한 시간 초과 요청을 늘리십시오. 이것도 확인해보십시오. http://stackoverflow.com/questions/7083680/how-to-use-asynctask-for-jsoup-parser. 감사합니다 – ImGeorge

+0

내 코드는 위에 첨부되어 있지만 결과가 표시되지 않습니다. – Kinny

0
public class MainActivity extends Activity { 

TextView tv; final String URL = "http://www.mtn.co.ug/Mobile-Plans/PayAsYouGo/MTN-PerMinute.aspx";

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    tv = (TextView) findViewById(R.id.textView); 
    new MyTask().execute(URL); 
} 

private class MyTask extends AsyncTask<String, Void, String> { 
    ProgressDialog prog; 
    String title = ""; 
    @Override 
    protected void onPreExecute() { 
     prog = new ProgressDialog(MainActivity.this); 
     prog.setMessage("Loading...."); 
     prog.show(); 
    } 
    @Override 
    protected String doInBackground(String... params) { 
     try { 
      Document Doc= Jsoup.connect(params[0]).get(); 
      //timeout(90000).ignoreHttpErrors(true); 

      //title = Doc.title(); 
      for (Element Yello: Doc.select("div tbody:contains(Bundle):eq(6) tr td")) { 

       System.out.println(Yello.text()); 
       tv.setText(Yello.text()); 

       title = Yello.toString(); 
            } 
     } catch (IOException e) { 

      e.printStackTrace(); 
     } 
     return null; 
    } 
    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 

     tv.setText(title); 
     prog.dismiss(); 
    } 
     } 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

}

+0

왜 유 코멘트 시간 초과했다. 어쩌면 그게 원인이야. 또한 URL을 직접 Jsoup.connect (http://www.mtn.co.ug/Mobile-Plans/PayAsYouGo/MTN-PerMinute.aspx)에 넣는 것만 제외하고 사용자 입력에서 오는 것을 제외하고 ur에 직접 입력하고 ur 게시 실행 if (this.prog.isShowing()) { \t \t \t this.prog.dismiss(); \t \t \t}. 또한 이것을 또 다른 질문으로 설정하십시오. – ImGeorge

+0

시간 제한을 다시 설정합니다. 프로그램이 실행되지만 끝나면 아무 것도 표시하지 않습니다. 다른 질문으로 설정하려고합니다. 고맙습니다. – Kinny

+0

나에게 한 번 링크를 설정하십시오. .. 또한 URL에 직접 넣었습니까? – ImGeorge