1

下面是 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();
4

1 回答 1

0

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

意味着 loadCursorAdapter 将 Application 或 Activity Context 作为第一个参数而不是 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

于 2012-12-25T05:06:05.920 回答