class DetailActivity : AppCompatActivity() {
companion object {
const val EXTRA_USER = "extra_user"
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_detail)
val imgAvatar:CircleImageView = findViewById(R.id.img_dtlavtr)
val txtName:TextView = findViewById(R.id.txt_names)
val txtUname:TextView = findViewById(R.id.txt_uname)
val users = intent.getParcelableArrayListExtra<User>(EXTRA_USER) as ArrayList<User>
imgAvatar.setImageResource(users)
txtName.text
txtUname.text
}
}
It's my first time learning Android Studio and Kotlin, Above is the second activity DetailActivity.kt, in the section I will display an image (imgAvatar.setImageresource(users)), an error appears I use arraylist and parcelable to send data sets in the form of images and text "Type missmatch Required: Int Found: kotlin.collection. ArrayList "
and here's the code for MainActivity.kt
class MainActivity : AppCompatActivity() {
private lateinit var adapter: UserAdapter
private lateinit var dataName: Array<String>
private lateinit var dataUname: Array<String>
private lateinit var dataAvatar: TypedArray
private var users = arrayListOf<User>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val listView: ListView = findViewById(R.id.lv_list)
adapter = UserAdapter(this)
listView.adapter = adapter
prepare()
addItem()
listView.onItemClickListener = AdapterView.OnItemClickListener {
_, _, position, _ ->
//Toast.makeText(this@MainActivity, users[position].name, Toast.LENGTH_SHORT).show()
val detailIntent = Intent(this@MainActivity, DetailActivity::class.java)
detailIntent.putParcelableArrayListExtra(EXTRA_USER, users)
startActivity(detailIntent)
}
}
private fun addItem() {
for (position in dataName.indices) {
val user = User(
dataAvatar.getResourceId(position, -1),
dataName[position],
dataUname[position]
)
users.add(user)
}
adapter.users = users
}
private fun prepare() {
dataName = resources.getStringArray(R.array.name)
dataUname = resources.getStringArray(R.array.username)
dataAvatar = resources.obtainTypedArray(R.array.avatar)
}
}