从活动到片段的接口回调

时间:2019-07-19 00:06:02

标签: java android

我正在尝试创建从活动到片段的接口回调。当我使用创建方法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();
}

我希望侦听器对象不为空。

0 个答案:

没有答案