【问题标题】:How to save information about the position of a clicked item in recyclerview after re-entering the app重新进入应用后如何在recyclerview中保存点击项目的位置信息
【发布时间】:2021-02-10 20:40:25
【问题描述】:

如何保存有关单击的 recyclerview 元素位置的信息?我需要突出显示单击的 recyclerview 元素并在关闭应用程序后保存此选择。我试图通过创建一个 booleanArray 并通过单击元素将值更改为 true 来做到这一点。但是如何保存这个数组,以便重新进入应用程序后,值不会被重置?

适配器

class UsersAdapter(private val videoTitles: List<String>,
               private val Trening: List<String>,
               private val clickListener: onClickRecyclerViewItem,
               private val array: BooleanArray
               ): RecyclerView.Adapter<UsersAdapter.CustomViewHolder>() {

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder {
    val layoutInflater = LayoutInflater.from(parent.context)
    val cellForRow = layoutInflater.inflate(R.layout.recyclerview_item, parent, false)
    return CustomViewHolder(cellForRow)
}


@SuppressLint("ShowToast")
override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {
    val videoTitle = videoTitles[position]
    val Trening1 = Trening[position]
    holder.view.name.text= videoTitle
    holder.view.quantity.text= Trening1
    holder.view.setOnClickListener {
        clickListener.onClickItemListener()
        array[position] = true }
    }

override fun getItemCount(): Int {
    return videoTitles.size
}



@SuppressLint("ShowToast")
class CustomViewHolder(val view: View): RecyclerView.ViewHolder(view){
}
}

【问题讨论】:

  • 使用 Sharedpreferences 保存数组

标签: android kotlin android-recyclerview sharedpreferences


【解决方案1】:

关闭应用程序时,所有信息(即片段/活动等)都将被销毁。如果您想在关闭应用程序后保存特定值,您可以创建一个房间数据库(为此目的有点过分),或者将值保存在共享首选项中。我建议您查看here 以了解更多关于在an​​droid中保存数据的信息。

【讨论】:

    【解决方案2】:

    您可以将单击的项目保存在共享首选项或房间数据库中,当您回来时,您可以从中获取数据并根据需要使用。 link 向您展示如何使用 sharepreferences,this 向您展示如何实现房间数据库

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      相关资源
      最近更新 更多