我想從網站http://www.mtn.co.ug/Mobile-Plans/PayAsYouGo/MTN-PerMinute.aspx檢索表中包含的數據,並在android應用程序中使用它,以便更新時,應用程序中的信息是也更新了。但是,我不是很熟悉android。所以我需要幫助來檢索使用htmlcleaner和jsoup/json的數據。從網頁上的表(類)檢索數據在android中使用
Thanx。
我想從網站http://www.mtn.co.ug/Mobile-Plans/PayAsYouGo/MTN-PerMinute.aspx檢索表中包含的數據,並在android應用程序中使用它,以便更新時,應用程序中的信息是也更新了。但是,我不是很熟悉android。所以我需要幫助來檢索使用htmlcleaner和jsoup/json的數據。從網頁上的表(類)檢索數據在android中使用
Thanx。
MTN yello lol。在尼日利亞使用它。下面是如何做到這一點假設你KNW的Android已經那麼你就需要去http://jsoup.org/cookbook/更多地瞭解jsoup庫
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());
}
好運氣的人的樣本
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;
}
}
爲什麼你評論你的超時。也許這就是原因。也可以直接將URL直接放到Jsoup.connect(http://www.mtn.co.ug/Mobile-Plans/PayAsYouGo/MTN-PerMinute.aspx),除非它來自用戶輸入,只需直接放入並在ur上執行post執行if(this.prog.isShowing()){ \t \t \t this.prog.dismiss(); \t \t \t}。同樣也將此設置爲另一個問題。 – ImGeorge
我放回了超時時間。該程序運行,但沒有顯示任何結尾。我要把它作爲另一個問題。感謝名單。 – Kinny
給我鏈接一旦你設置它..也沒有你把網址直接 – ImGeorge
感謝喬治的幫助。但每當我運行應用程序超時。也可以顯示異步任務。 – Kinny
好的這將是一個不同的問題,請標記爲答案,如果它可以幫助你。提示,你需要把它放入asyntask方法來處理從網站下載的數據,因爲互聯網速度很慢,或者網站上有太多的數據。同時增加超時請求。檢查出來呢 - http://stackoverflow.com/questions/7083680/how-to-use-asynctask-for-jsoup-parser。謝謝 – ImGeorge
我的代碼附在上面,但我沒有得到結果顯示。 – Kinny