我试图将数据从适配器传递到activity,但我得到了类强制转换异常。 帮助我正确地表达上下文。 我的上下文流如下所示。
>
MainActivity加载userData片段
Transaction.Replace(r.id.FrameLayout,new userDataFrag());
userData片段使用MainActivity的上下文设置适配器(在onAttach()中设置上下文)
public void onAttach(@nonnull Context Context){super.onAttach(Context);this.Context=Context;gridAdapter=new ProfileGridAdapter(Context,myPosts);}
适配器使用MainActivity上下文调用接口方法以启动postViewer activity
SendArrayListToActivity.SendUserModels(后模型);
在第三个场景中,我在适配器中获得类强制转换异常
主要活动>; userData片段>; 适配器>; postViewer activity
例外:
java.lang.ClassCastException: com.test.MainActivity cannot be cast to com.test.Interfaces.SendArrayListToActivity
我的适配器代码:
private ArrayList<PostModel> postModels;
private Context context; //receives context from userData fragment
private SendArrayListToActivity sendArrayListToActivity; //interface
public ProfileGridAdapter(Context context,ArrayList<PostModel> postModels)
{
this.context=context;
this.postModels=postModels;
sendArrayListToActivity = (SendArrayListToActivity) context; //class cast exception
}
似乎您需要在您的MainActivity中实现您的接口。 如:
class MainActivity : AppCompatActivity, SendArrayListToActivity {
// Here you implement your methods
}