多个接口实现 Android [重复]

Multiple interface implementations Android [duplicate]

提问人:user3034944 提问时间:3/4/2019 最后编辑:user3034944 更新时间:3/4/2019 访问量:245

问:

我有一个 Activity,它实现了两个接口,用于对某些操作进行回调。我想将我的 Activity 的上下文发送到另一个 Class,该 Class 将访问指定回调的对象。

这是我的代码:-

     public class OpenSchoolFragment extends Fragment implements IOpenSchoolCallBack, INetworkCallback
    {
// 1st case
       expandableListAdapter = new AdapterOpenSchool(getActivity(), this); // IOpenSchoolCallBack should provided

//2nd case
call.enqueue(new Callback<OpenSchool>()
        {
            @Override
            public void onResponse(Call<OpenSchool> call, Response<OpenSchool> response)
            {

                if (response.isSuccessful())
                {
                    OpenSchool userBatch = response.body();
                    if (userBatch != null)
                    {
                        RLProgressRoot.setVisibility(View.GONE);
                    }
                }
                else
                {
                    RLProgressRoot.setVisibility(View.GONE);
                    if (response.code() == getResources().getInteger(R.integer.integer_404))
                    {
                        DialogHelperUtil.showRetrySnackbar(RLContainer, getString(R.string.str_error_unauthorised),this); //INetworkCallBack should be provided

                    }
                    else
                    {
                        DialogHelperUtil.showMessageSnackbar(RLContainer, response.raw().message());
                    }
                }
            }

        }

因此,当我尝试在第二种情况下传递“this”时,我收到一个错误,说:-

Wrong 3rd argument type. Found: 'Callback<OpenSchool>', required: 'INetworkCallback'

对于第二种情况,我如何确保在“this”中传递正确的回调,即。?INetworkCallback

java android 接口 回调 这个

评论

1赞 Michael 3/4/2019
错误看起来是错误的。我觉得有些东西你没有向我们展示,比如第二个语句是从内部类或其他什么地方调用的。
0赞 Linh 3/4/2019
不确定,但尝试将其转换为 INetworkCallback,例如(INetworkCallback) this
0赞 user3034944 3/4/2019
@Michael 是的,第二种情况是在内部类中。更新我的问题
2赞 Michael 3/4/2019
@user3034944 然后用代替OpenSchoolFragment.thisthis
0赞 user3034944 3/4/2019
@Michael谢谢,这就是问题所在

答:

1赞 emandt 3/4/2019 #1

“this”是指您所处的那个精确点的当前对象。

如果 your 是从类中调用的,则引用 .DialogHelperUtil.showRetrySnackbar()CallbackthisCallback

您可以使用以下命令“退出”当前的内部类 () 并访问其外部类CallbackOuterClass.this