简体   繁体   English

E/RecyclerView:没有附加适配器; 在我的片段中跳过布局

[英]E/RecyclerView: No adapter attached; skipping layout in my fragment

I can run this and I also got data appear but I got this warning on my Run terminal "E/RecyclerView: No adapter attached; skipping layout No adapter attached; skipping layout"我可以运行它,我也出现了数据,但我在运行终端上收到了这个警告“E/RecyclerView:没有附加适配器;跳过布局没有附加适配器;跳过布局”

How can I solve this我该如何解决这个问题

class SpacedFragment : Fragment() {
    private lateinit var kanjiViewModel : KanjiViewModel
    private lateinit var spacedRecyclerAdapter : SpacedRecyclerAdapter
    private lateinit var day1Adapter: SpacedRecyclerAdapter
    private var _binding : FragmentSpacedBinding? = null
    private val binding get() = _binding!!
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View {
        _binding = FragmentSpacedBinding.inflate(inflater,container,false)
        return binding.root
    }

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    initUI()
}

private fun initUI() {
    val dao = KanjiDatabase.getInstance(requireContext()).dao()
    val repository = KanjiRepository(dao)
    val factory = KanjiViewModelFactory(repository)
    kanjiViewModel = ViewModelProvider(this,factory)[KanjiViewModel::class.java]
    //adapter
    spacedRecyclerAdapter = SpacedRecyclerAdapter()
    day1Adapter = SpacedRecyclerAdapter()
    //layoutManager
    binding.spacedRecyclerview.layoutManager = GridLayoutManager(context,5)
    binding.spacedRecyclerviewDay1.layoutManager = GridLayoutManager(context,5)
    getData()
}

private fun getData() {
    kanjiViewModel.kanjiList.observe(viewLifecycleOwner, { data ->
        spacedRecyclerAdapter.submitList(data.filter { it.spacedstatus == 0 })
        binding.spacedRecyclerview.adapter = spacedRecyclerAdapter
        day1Adapter.submitList(data.filter { it.Japanese_Language_Proficiency_Test == 4 })
        binding.spacedRecyclerviewDay1.adapter = day1Adapter
    })
}
override fun onDestroyView() {
    super.onDestroyView()
    _binding = null
}

} }

There is a sorting error in the relevant lines.相关行有排序错误。

day1Adapter.submitList(data.filter { it.Japanese_Language_Proficiency_Test == 4 })
binding.spacedRecyclerviewDay1.adapter = day1Adapter

You should use submitlist after assigning adapter您应该在分配适配器后使用提交列表

set your adapter inside initUI functioninitUI函数中设置你的适配器

private fun initUI() {
    ...code
    spacedRecyclerAdapter = SpacedRecyclerAdapter()
    binding.spacedRecyclerview.adapter = spacedRecyclerAdapter

    day1Adapter = SpacedRecyclerAdapter()
    binding.spacedRecyclerviewDay1.adapter = day1Adapter
    ...code
    getData()
}

private fun getData() {
    kanjiViewModel.kanjiList.observe(viewLifecycleOwner, { data ->
        spacedRecyclerAdapter.submitList(data.filter { it.spacedstatus == 0 })
        day1Adapter.submitList(data.filter { it.Japanese_Language_Proficiency_Test == 4 })
    })
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM