我正在尝试创建从活动到片段的接口回调。当我使用创建方法setListener时,this.value设置为等于片段中的侦听器。当活动进入onCreate时,该值将为null。我不确定为什么会有一个对象,突然该对象又回到了空。我在执行过程中做错了什么?是否有更好的方法将数据(仅是整数)从活动发送到片段?
我已经测试并验证了对象存在于setListener方法中,然后在活动的onCreate方法中为null。
这是一些代码
这在活动中:
我的界面
public interface onVendorMultiVendorComplete {
void mIndex(int index);
}
我的侦听器对象和setListener方法
private onVendorMultiVendorComplete vendorCallback;
public void setListener(onVendorMultiVendorComplete vendorCallback){
this.vendorCallback = vendorCallback;
//this.vendorCallback is object multi_vendor_show_vendor{c0d1486 #0 id=0x7f080092}
//vendorCallback is object multi_vendor_show_vendor{c0d1486 #0 id=0x7f080092}
}
我在接口上的方法调用
slideView.setOnSlideCompleteListener(new SlideView.OnSlideCompleteListener() {
@Override
public void onSlideComplete(SlideView slideView) {
if (vendorCallback != null){ //vendorCallback is null
vendorCallback.mIndex(index);
}
}
});
这是片段内部
首先,我从Activity实现onVendorMultiVendorComplete
我定义了回调对象
private multi_vendor_at_vendor vendorCallback;
我从multi_vendor_at_vendor(活动)中调用setListener并将其传递给必需的参数(就是这个)
vendorCallback.setListener(this);
我还从接口重写了必需的方法
@Override
public void mIndex(int index) {
// This block of code is never ran because listener is null in activity
jsonArray.remove(index);
System.out.println(jsonArray);
recyclerViewAdapter.notifyDataSetChanged();
}
我希望侦听器对象不为空。