Я сохраняю позицию выбранного элемента, но не могу понять как его отметить в recyclerview после перезапуска приложения

Я сохраняю позицию выбранного элемента, но не могу понять как его отметить в recyclerview после перезапуска приложения.

Мой адаптер:

class AdapterRecycler(
    private val list: ArrayList<ItemsHolder>,
    val textState: TextView,
    val context: Context
) :
    RecyclerView.Adapter<AdapterRecycler.ViewHolder>() {

    companion object {
        var selectedItemPos = -1
        var lastItemSelectedPos = -1
        var countResume = false
    }

    @SuppressLint("ResourceAsColor")
    inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {

        val textTask: TextView = itemView.findViewById(R.id.task)
        val textCount: TextView = itemView.findViewById(R.id.count)
        var linear: LinearLayout = itemView.findViewById(R.id.lin_task)
        val buttonDelete: ImageView = itemView.findViewById(R.id.buttonDelete)


        init {

            itemView.setOnClickListener {
                selectedItemPos = adapterPosition

                PrefUtil.setPosition(context, selectedItemPos) // сохраняю 

                textState.text = list[selectedItemPos]._task
                if (lastItemSelectedPos == -1)
                    lastItemSelectedPos = selectedItemPos
                else {
                    notifyItemChanged(lastItemSelectedPos)
                    lastItemSelectedPos = selectedItemPos
                }
                notifyItemChanged(selectedItemPos)
            }

            buttonDelete.setOnClickListener {
                removeAt(position)
                if (list.isEmpty())
                    textState.text = "Time to work!"
                if (position == selectedItemPos) {
                    selectedItemPos = -1
                    textState.text = "Time to work!"
                }
            }

        }

        fun bindItems(item: ItemsHolder) {
            textTask.text = item._task
            textCount.text = item._count
        }
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val view = LayoutInflater.from(parent.context).inflate(R.layout.task_item, parent, false)
        return ViewHolder(view)
    }

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

    @SuppressLint("ResourceAsColor")
    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
            if (position == selectedItemPos)
                holder.linear.setBackgroundColor(R.color.design_default_color_primary)
            else
                holder.linear.setBackgroundColor(Color.TRANSPARENT)

        holder.bindItems(list[position])
    }

    private fun removeAt(position: Int) {
        list.removeAt(position)
        notifyItemRemoved(position)
        //   notifyItemRangeChanged(position, list.size)
    }
}

Моя onResume функция:

 override fun onResume() {
        super.onResume()
        initTimer()

        AdapterRecycler.selectedItemPos = PrefUtil.getPosition(requireContext())

        loadTask()
        listViewTasks.layoutManager = LinearLayoutManager(requireContext())
        adap = AdapterRecycler(hold, textState, requireContext())
        listViewTasks.adapter = adap
    }

Сохранить и получить позицию:

fun setPosition(context: Context, pos: Int){
        val editor = PreferenceManager.getDefaultSharedPreferences(context).edit()
        editor.putInt("position", pos)
        editor.apply()
    }

    fun getPosition(context: Context): Int{
        val preferences = PreferenceManager.getDefaultSharedPreferences(context)
        return preferences.getInt("position", 0)
    }

Ответы (0 шт):