将上下文转换为非活动类的回调接口类型

时间:2016-10-13 11:48:47

标签: java android callback android-context

  

请注意!这个问题现在已经解决,但仍然想知道如何?请解释一下?

这些是我的回调函数,它在自定义适配器GridCartAdapter的setter方法中被引用,在活动类中声明。

gridCartAdapter.setOnDeleteCartItem(ProductListActivity.this);
gridCartAdapter.setOnAddCartItems(ProductListActivity.this);

这里是GridCartAdapter

中接口函数的定义
public void setOnAddCartItems(OnAddCartItems onAddCartItems)
{
    this.onAddCartItems = onAddCartItems;
}
public void setOnDeleteCartItem(onDeleteCartItem onDeleteCartItem) {
    this.onDeleteCartItem = onDeleteCartItem;
}

所以如果我在非活动类中做同样的工作

gridCartAdapter.setOnDeleteCartItem((onDeleteCartItem)context);
gridCartAdapter.setOnAddCartItems((OnAddCartItems)context);

它给出了java.lang.ClassCastException: pk.wiseapps.wisemart.app.activity.SpecificProductActivity cannot be cast to pk.wiseapps.wisemart.app.onDeleteCartItem

的错误
  

Jus将此更改为我的代码

if(context instanceof onDeleteCartItem){
gridCartAdapter.setOnDeleteCartItem((onDeleteCartItem)context);
}
if(context instanceof OnAddCartItems){
gridCartAdapter.setOnAddCartItems((OnAddCartItems)context);
}

在这里输入代码

0 个答案:

没有答案