chaojiweicat 2020-03-16 09:12 采纳率: 0%
浏览 446
已结题

RecyclerView不显示数据库数据,数据库没问题,已经试过了,有数据的,adapter也应该是没问题的,因为已经有一个fragment中的recyclerView在用了,有数据显示,但是第二个fragment中的recyclerView却没数据显示

public class ChangeFragment extends Fragment {

private RecyclerView mRecyclerView;
private MyAdapter adapter1,adapter2;
private WordViewModel mWordViewModel;
private LiveData<List<Word>> allWords;

public ChangeFragment() {
    // Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_change, container, false);
}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    ViewModelProvider.AndroidViewModelFactory factory = ViewModelProvider.AndroidViewModelFactory.getInstance(requireActivity().getApplication());

            ViewModelProvider provider = new ViewModelProvider(requireActivity(),factory);

            mWordViewModel = provider.get(WordViewModel.class);

    //LiveData<List<Word>> all = mWordViewModel.getAllWordLive();
    //Word word = all.getValue().get(1);
    //String string = word.getWord();
    //Log.d("my log",String.valueOf(string));

    mRecyclerView = requireActivity().findViewById(R.id.recyclerView_change);

    mRecyclerView.setLayoutManager(new LinearLayoutManager(requireActivity()));

    adapter1 = new MyAdapter(false,mWordViewModel);
    adapter2 = new MyAdapter(true,mWordViewModel);

    boolean temp = getArguments().getBoolean("argument_to_change",false);
    if(temp){
        mRecyclerView.setAdapter(adapter2);
    }else{
        mRecyclerView.setAdapter(adapter1);
    }

    allWords = mWordViewModel.getAllWordLive();
    allWords.observe(getViewLifecycleOwner(), new Observer<List<Word>>() {
        @Override
        public void onChanged(List<Word> words) {
            adapter1.notifyDataSetChanged();
            adapter2.notifyDataSetChanged();
        }
    });

}

}



  • 写回答

3条回答 默认 最新

  • 有头发的猿 2020-03-16 16:35
    关注

    你应该把你的数据来源,数据什么时候传给adapter的部分代码贴出来,一般来说是数据转换给adapter的时候出现了问题。
    看看传入给adapter的集合的地址,和你获取数据集合的地址在传给adapter的是否一样

    评论

报告相同问题?

悬赏问题

  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决