我使用AsyncTask从API获取结果。我有几个课程,工作正常。我已经创建了另一个AsyncTask类,但是我收到了这个错误:
The method execute() is undefined for the type InvoiceTemplateGet
在这一行:
InvoiceTemplateGet template = new InvoiceTemplateGet(PaymentMethodActivity.this, invoiceNumber);
template.execute();
有一个类InvoiceTemplateGet:
public class InvoiceTemplateGet {
public InvoiceTemplateGet(Context context, String invoiceNumber){
mContext = context;
this.invoiceNumber = invoiceNumber;
load_default_settings();
}
protected CustomAsyncTaskResult<String> doInBackground(String... arg0) {
try{
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String response = httpclient.execute(httpget,responseHandler);
return new CustomAsyncTaskResult<String>(response);
}catch (HttpResponseException e){
return new CustomAsyncTaskResult<String>(new ApiException("Invoice", "Invoice was not found."));
}catch (Exception e){
Log.e("Invoice Error", "Error:", e);
return new CustomAsyncTaskResult<String>(new ApiException("Invoice", e.getMessage()));
}
}
protected void onPostExecute(CustomAsyncTaskResult<String> result) {
((PaymentMethodActivity)mContext).getResultFromTemplate(result);
progressDialog.dismiss();
}
}
我有另外一个类似于这个的类,只是url是不同的。它在同一个页面上执行,就像这个代码一样。它有效,为什么我仍然会收到此错误?
答案 0 :(得分:1)
我有另一个类就像这个一样,只是url是 不同。它在同一个页面上执行,就像这个一样 代码的一部分。它有效,为什么我仍然会收到此错误?
您的InvoiceTemplateGet
没有名为execute()
的方法。查看您的代码,我认为您忘了extend AsyncTask
。您还可以创建execute()方法来实例化内部AsyncTask
并调用instance.execute()