我想使用 SavedInstanceState 来保存 Recycler View 的数据和其他相关数据,比如标题等(这是一个购物车 Activity,基本上所有数据都是从其他 Activity 收集的) 我的代码:-
package com.example.myapplication
import android.annotation.SuppressLint
import com.example.myapplication.passing_data
import java.lang.Class
import android.content.Context
import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
class TrackOrderAcitivty : AppCompatActivity() {
private lateinit var adapter3: ImageAdapter
private lateinit var ImageRecyclerView : RecyclerView
private lateinit var DataArraylist : ArrayList<images>
private lateinit var savedArrayList:ArrayList<passing_data>
@SuppressLint("MissingInflatedId")
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putParcelableArrayList("Total Saved List",savedArrayList)
outState.putParcelableArrayList("Image Saved List",DataArraylist)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_track_order_acitivty)
DataArraylist= arrayListOf<images>()
val food:passing_data = intent.getParcelableExtra("foodie")!!
if(savedInstanceState!=null){
savedArrayList.addAll(savedInstanceState.getParcelableArrayList("Total Saved List",passing_data))
}
if(food!=null)
{
savedArrayList.add(passing_data(food.Image,food.title,food.category,food.price,food.star_rating,food.count))
DataArraylist.add(images(food.Image))
val order:TextView=findViewById(R.id.textView16)
order.text="${food.count} Items Ordered"
val layoutManager= LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false)
ImageRecyclerView=findViewById(R.id.recyclerView_Image)
ImageRecyclerView.layoutManager= layoutManager
ImageRecyclerView.setHasFixedSize(true)
adapter3= ImageAdapter(DataArraylist)
ImageRecyclerView.adapter= adapter3
}
}
}```
In Line no 31 I wanted to get the content of my saved Parcelable Array list back into it as if I reopen Activity all of it just gets removed.
On Addition:
Also I had found that there is something known as ChangeNumberItemListener in Java which basically saves the content of a Recycler View so I wanted to know how to implement that in Kotlin.
If I can implement this I can basically avoid saving ArrayList all together.