Android Recyclerview ListAdapter未更新
在使用视图模型时,我在RecyclerView中实现了一个基本的ListAdapter。我得到的数据是通过调用API从networkManager到Viewmodel的。即使我确实得到了数据,提交列表也不起作用,因此没有数据被夸大 UpcomingGroupFragmentAndroid Recyclerview ListAdapter未更新,android,android-recyclerview,Android,Android Recyclerview,在使用视图模型时,我在RecyclerView中实现了一个基本的ListAdapter。我得到的数据是通过调用API从networkManager到Viewmodel的。即使我确实得到了数据,提交列表也不起作用,因此没有数据被夸大 UpcomingGroupFragment public class UpcomingGroupFragment extends Fragment { private UpcomingViewModel mViewModel; private Rec
public class UpcomingGroupFragment extends Fragment {
private UpcomingViewModel mViewModel;
private RecyclerView recyclerView;
private GroupAdapter_new adapter;
public static UpcomingGroupFragment newInstance() {
return new UpcomingGroupFragment();
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_chatgroups, container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
recyclerView = view.findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(layoutManager);
adapter = new GroupAdapter_new();
recyclerView.setAdapter(adapter);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mViewModel = ViewModelProviders.of(this).get(UpcomingViewModel.class);
mViewModel.getMutableLiveData().observe(this, new Observer<List<ChatGroups_New>>() {
@Override
public void onChanged(@Nullable List<ChatGroups_New> chatGroups_news) {
adapter.submitList(chatGroups_news);
Log.e("Upcoming", String.valueOf(chatGroups_news.size()));
}
});
}
}
上面的日志显示数据正在添加到arraylist中,但没有更新。同样,在所有这些日志之后,当我返回片段时,我得到以下错误
no adapter Attached, Skipping Layout
还有一点需要补充的是,适配器的getItemCount得到了正确更新。但即使在那之后,我还是犯了一个错误:
no adapter Attached, Skipping Layout
EDIT:我通过注释掉覆盖SubmitList方法的代码修复了错误。我还在fragment类的observer方法中设置适配器
AviLeap/flights/upcoming: //.... API CALL
2019-03-02 13:25:53.652 8477-8477/com.avileapconnect.com E/parseUpcomingFlight: 1 2019-03-02 13:25:53.652 8477-8477/com.avileapconnect.com E/parseUpcomingFlight: 2
2019-03-02 13:25:53.653 8477-8477/com.avileapconnect.com E/Upcoming: 2
no adapter Attached, Skipping Layout
no adapter Attached, Skipping Layout