我将应用程序的所有API调用方法组织在一个单独的类中。因此,当我从服务器获取响应时,将其插入到Model类中。但是问题是,我无法notifyDataSetChanged()(从解析JSON的类中)我解析所有的JSON。因此,我的适配器的getItemCount()值始终为0。结果是recyclerView永远没有数据。
这是我的 Fragment.class
RecyclerView recyclerView;
LatestAdapter latestAdapter;
List<PostItem> latestItems;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_latest, container, false);
// Initilize the RecyclerView and Adapter
recyclerView =(RecyclerView)view.findViewById(R.id.recycler_view);
latestAdapter = new LatestAdapter(getContext(),latestItems);
final LinearLayoutManager mLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setAdapter(latestAdapter);
fetchIntialPost();
}
private void fetchIntialPost() {
//here I make API call in another class,which is all API calling method in that class
ApiHelper apiHelper = new ApiHelper();
apiHelper.fetchIntialPost();
}
问题:
我现在的问题是,我无法访问LatestAdapterFragment.class中的对象。因此,我notifyDataSetChanged()在解析响应Json后无法调用。
我尝试了什么
我试图在ItemHelper类中创建如下所示的方法:
public List<tItem> getList() {
return items;
}
在LatestAdapter中,我还创建了这样的方法:
public void setItem(List<Item> item) {
this.latestItems = item;
notifyDataSetChanged();
}
然后在Fragment.class中,我像这样访问它
ItemHelper itemHelper = new ItemHelper();
latestItems = itemHelper.getList();
latestAdapter.setPosts(latestItems);
与我上面试过了,getItemCount()的LatestAdapter仍为0,API调用之后。
所以有人请给我一个解决这个问题的提示
,或者是一种更好的解决方案,用于将1类中的所有API调用方法组织起来,将1类中的所有JSON解析操作组织在一起notifyDataSetChanged()。适配器也可以同时使用。
青春有我
芜湖不芜
相关分类