如何在Android中将Parcelable转换为Generic Type?

时间:2016-03-28 04:31:17

标签: android generics parcelable retrofit2

注意:请阅读完整的问题,如果有人知道答案或任何建议,请随时告诉我

我正在使用改装2以Json格式从互联网下载博客数据,并使用回收站视图将它们显示在列表中。我将我的recyclerview适配器设置为改装回调。

在我的适配器

 //..........
 @Override
public void onResponse(Call<AllBlog> call, Response<AllBlog> response) {
    mPosts = response.body().getPosts();
    notifyDataSetChanged();
}
.....

我创建了一个数据模型并使它们可以分解。 在MainActivity.java中,我请求api调用,当我得到一些数据时,我保存了它 像这样的onSaveInstanceState

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    //.....
    outState.putParcelable(STATE_BLOG_LIST, value);
    //.....
}

所以,在onCreate中,当onSaveInstanceState不为null时,我想从onSaveInstanceState中提取数据并在我的列表适配器中设置适配器回调中的数据。这样的事情

if (savedInstanceState == null) {
        showLoading();
        Api.getBlog(mBlogListAdapter);
    } else {
        mBlogListAdapter.onResponse(savedInstanceState.getParcelable(STATE_BLOG_LIST), null);
    }

但是,当我编写该代码时,此mBlogListAdapter.onResponse(savedInstanceState.getParcelable(STATE_BLOG_LIST), null);代码行变为红色并显示Wrong 1st argument type. Found: 'android.os.Parcelable', required: 'retrofit2.Call<io.github.niyamatalmass.treehouseblog.Model.AllBlog>

所以我想:          我从savedInstanceState获取了一个parcelable对象,并尝试在onResponse方法中设置该对象,其中第一个参数为Call<AllBlog> call。 所以现在我的问题是如何将parcelable数据转换为泛型类型(Call<AllBlog>)

0 个答案:

没有答案