Android - جلب بيانات XML من الويب (باستخدام Asynctask) ومشكلة ProgressBar المتعلقة

StackOverflow https://stackoverflow.com/questions/3715179

  •  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;
        }

    }

}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top