小编use*_*604的帖子

片段重新创建后,ViewModel 不保留数据

我有三个带有底部导航栏的片段应用程序,我使用 NavigationUI 进行切换。我还有一个创建数据的视图模型(来自资产傻瓜),片段观察我用来填充回收器视图的实时数据的数组列表。

我的问题是每当我切换片段时,随着片段的重新创建,我不希望每次重新创建片段时都进行数据检索。因此使用视图模型。但就我而言,viewmodel 中的数据没有保留。我附上了片段和视图模型代码。我不确定这里有什么问题。

我尝试记录 aaraylist 中的条目数,如果我不调用填充数组列表的例程,它会返回 0。

歌曲片段

private const val TAG = "Songs Fragment"

class SongsFragment : Fragment(), android.widget.SearchView.OnQueryTextListener {

    private val viewmodel: SongListViewModel by lazy { ViewModelProviders.of(this).get(SongListViewModel::class.java)}

    private val songListAdapter = SongListAdapter(arrayListOf())
    private var raga = "All"

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        Log.d(TAG, "onCreateView called")

        return inflater.inflate(R.layout.fragment_songs, container, false)
    }

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

        Log.d(TAG, "onViewCreated called")



        val context: FragmentActivity? = activity

        (activity as …
Run Code Online (Sandbox Code Playgroud)

android viewmodel kotlin

2
推荐指数
1
解决办法
1010
查看次数

标签 统计

android ×1

kotlin ×1

viewmodel ×1