对于InvoiceTemplateGet类型,方法execute()未定义

时间:2015-04-22 19:57:39

标签: android android-asynctask execution

我使用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是不同的。它在同一个页面上执行,就像这个代码一样。它有效,为什么我仍然会收到此错误?

1 个答案:

答案 0 :(得分:1)

  

我有另一个类就像这个一样,只是url是   不同。它在同一个页面上执行,就像这个一样   代码的一部分。它有效,为什么我仍然会收到此错误?

您的InvoiceTemplateGet没有名为execute()的方法。查看您的代码,我认为您忘了extend AsyncTask。您还可以创建execute()方法来实例化内部AsyncTask并调用instance.execute()