如何访问setOnItemClickListener方法中的接口?

时间:2015-08-20 12:20:05

标签: java android interface android-asynctask

我创建了一个interface,它有两种方法:

public interface OnCarListener {

    void onCarCompleted(String c);

    void onCarError(String error);
}

我在interface中使用此AsyncTask但问题出现在我尝试在方法AsyncTask内执行此setOnItemClickListener时,因为我尝试时:

new findCar(this).execute();

它给我一个错误,说我参考了:

android.widget.AdapterView.OnItemClickListener

而不是:

com.example.user.project.OnCarListener

我已经实现了MainActivity课程的界面,如果我尝试在AsyncTask方法中使用我的onCreate(),它不会给我任何错误,但我不知道#39; t需要以onCreate()方法执行,我需要在自定义适配器的方法setOnItemClickListener内执行它(它与{{1}相关联})

我希望我的问题能够得到妥善理解,如果没有,请不要怀疑。

提前致谢!

3 个答案:

答案 0 :(得分:3)

为什么不在需要的地方实现界面。不要在OnCarListener中实施MainActivity并执行此操作。这样您就可以在任何地方使用它

new findCar(new OnCarListener()
    {
        @Override
        public void onCarCompleted(String c)
        {
            // Do your work
        }

        @Override
        public void onCarError(String error)
        {
            // Do your work
        }   
    }).execute();

答案 1 :(得分:0)

尝试new findCar(MainActivity.this).execute();

答案 2 :(得分:0)

您可以尝试这种方法

Create new interface in CustomAdapter, which notify 'clickEvent' in 
MainActivity from where you can execute Async.

例如:

public class YourCustomAdapter extends AnyAdapter
{
   ClickEventListener listener;     // new interface
   YourCustomAdapter(Context context)
   {
      listener=(ClickEventListener)context;
   }

   // Rest overrided methods
   getView()
   {
     // considering this is your click event
     button.setOnClickListener(new View.OnClickListner)
     {
        listener.buttonClicked();
     }
   }

   // Create Interface OverHere
   public interface ClickEventListener 
   {
       public void buttonClicked();
   }

}

// Implement this interface in MainActivity

public MainActivity extends Activity implements ClickEventListener 
{
  @override
  buttonClicked()
  {
    new findCar(this).execute();
  }
}