getSerialiazableExtra is deprecated thats why I tried new methos with clazz but I think it causes this can you help me? there are 3 pages code
its mainactivty
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private lateinit var landmarkList: ArrayList<LandMark>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
landmarkList = ArrayList<LandMark>()
//Data
val pisa = LandMark("Pisa", "Italy", R.drawable.pisa)
val colosseum = LandMark("Colosseum", "Italy", R.drawable.kolezyum)
val eiffel = LandMark("Eiffel", "France", R.drawable.eiffel)
val londonBridge = LandMark("London Bridge", "UK", R.drawable.bridge)
landmarkList.add(pisa)
landmarkList.add(colosseum)
landmarkList.add(eiffel)
landmarkList.add(londonBridge)
//Adapter : Layout && Data
//Mapping
val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, landmarkList.map { landMark -> landMark.name })
binding.listView.adapter = adapter
binding.listView.onItemClickListener = AdapterView.OnItemClickListener { parent, view, position, id ->
val intent = Intent(this,DetailsActivity::class.java)
intent.putExtra("landmarkName",landmarkList.get(position).name)
startActivity(intent)
}
}
}
its landmark class
package com.example.landmarkbookkotlin
import java.io.Serializable
class LandMark (val name:String,val country:String,val image:Int) :Serializable{
}
its detailsactivity
class DetailsActivity : AppCompatActivity() {
private lateinit var binding: ActivityDetailsBinding
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityDetailsBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
val intent = intent
//casting
val selectedLandMark = intent.getSerializableExtra("landmark") as LandMark
binding.LandMarkName.text = selectedLandMark.name
binding.LandMarkCountry.text = selectedLandMark.country
binding.imageView.setImageResource(selectedLandMark.image)
}
}
it should show other activity when I click listwiew but it crassesMainactivity with listview