以下是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();
答案 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