Android - جلب بيانات XML من الويب (باستخدام Asynctask) ومشكلة ProgressBar المتعلقة
-
02-10-2019 - |
سؤال
أقوم بإحضار بيانات XML من الويب باستخدام HTTP GET/POST. لقد فعلت ذلك الآن بطريقة بسيطة (أي بدون دحض).
وفقًا للرابط أدناه ، حاولت تنفيذه مع مربع حوار شريط التقدم مع موضوعhttp://www.ceveni.com/2009/09/sample-progress-bar-dialog-in-droid.html
لكن كيف أتعرف على وقت الانتهاء من جلب XML من الويب. (أي ما الذي يجب أن يكون وقت النوم وأيضًا متى يرفض مربع الحوار شريط التقدم)
اسمحوا لي أن مسح المزيد حول مشكلتي => في النشاط ، عندما ينقر المستخدم على زر "Fetch Data" ، يجب أن يظهر مربع الحوار "شريط التقدم" ويجب أن يختفي فقط عند اكتمال الجلب بنجاح.
أعتقد أن هذا يمكن القيام به "Asynctask"لكن لا أعرف كيفية استخدام هذا المفهوم لهذه المشكلة.
فكيف أفعل ذلك؟
المحلول
public void onClick() {
new FetchTask(context).execute(null);
}
public class FetchTask extends AsyncTask<Object, Object, Object > {
private ProgressDialog dlg;
private Context ctx;
public FetchTask(Context context) {
ctx = context;
}
@Override
protected void onPreExecute() {
dlg = new ProgressDialog(ctx);
dlg.setMessage("Loading....");
super.onPreExecute();
}
@Override
protected void onPostExecute(Object result) {
dlg.dismiss();
if ( result instanceof Exception ) {
// show error message
} else {
// display data
}
super.onPostExecute(result);
}
@Override
protected Object doInBackground(Object... params) {
try {
// String rawData = doPost("yourUrl");
// XMLTree data = yourParser.parse(rawData);
// return data;
} catch ( Exception e ) {
return e;
}
}
}
لا تنتمي إلى StackOverflow