Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Recyclerview ListAdapter未更新_Android_Android Recyclerview - Fatal编程技术网

Android Recyclerview ListAdapter未更新

Android Recyclerview ListAdapter未更新,android,android-recyclerview,Android,Android Recyclerview,在使用视图模型时,我在RecyclerView中实现了一个基本的ListAdapter。我得到的数据是通过调用API从networkManager到Viewmodel的。即使我确实得到了数据,提交列表也不起作用,因此没有数据被夸大 UpcomingGroupFragment public class UpcomingGroupFragment extends Fragment { private UpcomingViewModel mViewModel; private Rec

在使用视图模型时,我在RecyclerView中实现了一个基本的ListAdapter。我得到的数据是通过调用API从networkManager到Viewmodel的。即使我确实得到了数据,提交列表也不起作用,因此没有数据被夸大

UpcomingGroupFragment

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