我创建了一个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}相关联})
我希望我的问题能够得到妥善理解,如果没有,请不要怀疑。
提前致谢!
答案 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();
}
}