Android 异步任务在click listener中传递对接口的引用
我目前有一个实现接口的类 这段代码可以工作,但我的任务只能执行一次Android 异步任务在click listener中传递对接口的引用,android,interface,callback,Android,Interface,Callback,我目前有一个实现接口的类 这段代码可以工作,但我的任务只能执行一次 final ItemShopBuyItemTask buyItemTask = new ItemShopBuyItemTask(getActivity(), this); mButtonBuy.setOnClickListener(new View.OnClickListener() { @Override public void onCli
final ItemShopBuyItemTask buyItemTask = new ItemShopBuyItemTask(getActivity(), this);
mButtonBuy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
buyItemTask.execute(TEXTVIEW_ITEM_NAME);
}
});
当onClick(View v)函数需要一个itemBoughtTaskListener
时,如何将this
移动到函数内部,该函数在类的顶部实现为:implements ItemShopBuyItemTask.itemBoughtTaskListener
public ItemShopBuyItemTask(Context context, itemBoughtTaskListener cb){
dialog = new ProgressDialog(context);
mCallback = cb;
}
我的理解是你想要这条线
final ItemShopBuyItemTask buyItemTask = new ItemShopBuyItemTask(getActivity(), this);
要使用onClick方法。
所以你可以用
final ItemShopBuyItemTask buyItemTask = new ItemShopBuyItemTask(getActivity(), ClassName.class);
希望它能工作。因为Fragment正在实现
itemBoughtTaskListener
,所以需要传递FragmentName。这是第二个参数:
@Override
public void onClick(View v) {
ItemShopBuyItemTask buyItemTask = new ItemShopBuyItemTask(getActivity(),
FragmentClassName.this);
buyItemTask.execute(TEXTVIEW_ITEM_NAME);
}
那么你能做的就是:
public void accessWebService(){
ItemShopBuyItemTask buyItemTask = new ItemShopBuyItemTask(getActivity(), itemBoughtTaskListener cb);
buyItemTask.execute(TEXTVIEW_ITEM_NAME);
}
并根据需要多次调用此方法 使用当前代码时遇到什么问题?当我需要在单击按钮时创建新任务时,任务只能调用一次,因此可以多次调用