XmlAdapters中的ProgressDialog示例错误

时间:2012-12-25 05:03:17

标签: android android-asynctask

以下是XmlAdapters示例代码。当我添加ProgressDialog如下所示接收错误'适配器类型中的方法loadCursorAdapter(Context,int,String,Object ...)不适用于参数(new AsyncTask(){},int,String)'

       final ProgressDialog _progressDialog = new ProgressDialog(this);
            _progressDialog.setTitle("Loading ...");
            _progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);

            new AsyncTask<Void, Void, Void>() {
             protected Void doInBackground(Void ... urls) {
             setContentView(R.layout.photos_list);
             setListAdapter(Adapters.loadCursorAdapter(this, R.xml.photos,
            "content://xmldocument/?url=" + Uri.encode("http://picasaweb.google.com/data/feed/api/featured?max-results=50&thumbsize=144c")));
             }

             protected void onPostExecute(Void result) {
                 _progressDialog.dismiss();
             }

             protected void onPreExecute(Void no) {
                 _progressDialog.show();
             }

            }.execute();

1 个答案:

答案 0 :(得分:0)

  

'方法loadCursorAdapter(Context,int,String,Object ...)中的   类型适配器不适用于参数(new AsyncTask(){},   int,String)'

表示loadCursorAdapter将Application或Activity Context作为第一个param而不是AsyncTask,因此请将代码更改为:

new AsyncTask<Void, Void, Void>() {
      protected Void doInBackground(Void ... urls) {
         setContentView(R.layout.photos_list);
         setListAdapter(Adapters.loadCursorAdapter(Your_Current_Activity.this,
           R.xml.photos,
            "content://xmldocument/?url=" + Uri.encode("http://picasaweb.google.com/data/feed/api/featured?max-results=50&thumbsize=144c")));
                      //your code here...

并且我不确定这会有效,因为你试图从AsyncTask的doInBackground方法访问Ui元素,这些方法总是在后台线程中执行。

您需要在onPostExecute中移动所有与Ui相关的代码,以便在后台执行完成后更新Ui