Android studio 如何以图像的形式显示使用arraylist和parcelable发送的意向流程中的数据? class DetailActivity:AppCompatActivity(){ 伴星{ const val EXTRA_USER=“EXTRA_USER” } 重写创建时的乐趣(savedInstanceState:Bundle?){ super.onCreate(savedInstanceState) setContentView(R.layout.activity_详细信息) val imgAvatar:CircleImageView=findViewById(R.id.img\u dtlavtr) val txtName:TextView=findviewbyd(R.id.txt\u名称) val txtName:TextView=findViewById(R.id.txt_uname) val users=intent.getParcelableArrayListExtra(额外用户)作为ArrayList imgAvatar.setImageResource(用户) txtName.text txtName.text }

Android studio 如何以图像的形式显示使用arraylist和parcelable发送的意向流程中的数据? class DetailActivity:AppCompatActivity(){ 伴星{ const val EXTRA_USER=“EXTRA_USER” } 重写创建时的乐趣(savedInstanceState:Bundle?){ super.onCreate(savedInstanceState) setContentView(R.layout.activity_详细信息) val imgAvatar:CircleImageView=findViewById(R.id.img\u dtlavtr) val txtName:TextView=findviewbyd(R.id.txt\u名称) val txtName:TextView=findViewById(R.id.txt_uname) val users=intent.getParcelableArrayListExtra(额外用户)作为ArrayList imgAvatar.setImageResource(用户) txtName.text txtName.text },android-studio,kotlin,arraylist,android-intent,parcelable,Android Studio,Kotlin,Arraylist,Android Intent,Parcelable,} 这是我第一次学习Android Studio和Kotlin, 上面是第二个activity DetailActivity.kt,在第一节将显示一个图像(imgAvatar.setImageresource(users)),出现一个错误 我使用arraylist和parcelable以图像和文本的形式发送数据集 “类型不匹配 必填项:Int 找到:kotlin.collection.ArrayList“ 这是MainActivity.kt的代码 class DetailActivity : A

}

这是我第一次学习Android Studio和Kotlin, 上面是第二个activity DetailActivity.kt,在第一节将显示一个图像(imgAvatar.setImageresource(users)),出现一个错误 我使用arraylist和parcelable以图像和文本的形式发送数据集 “类型不匹配 必填项:Int 找到:kotlin.collection.ArrayList“

这是MainActivity.kt的代码

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

}
class MainActivity:AppCompatActivity(){
私有lateinit变量适配器:UserAdapter
私有lateinit var数据名:数组
私有lateinit var DATUNAME:数组
私有lateinit变量dataAvatar:TypedArray
private var users=arrayListOf()
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val listView:listView=findViewById(R.id.lv_列表)
adapter=UserAdapter(此)
listView.adapter=适配器
准备()
附加项()
listView.onItemClickListener=AdapterView.onItemClickListener{
_,位置,u->
//Toast.makeText(this@MainActivity,users[position].name,Toast.LENGTH\u SHORT.show()
val detailIntent=Intent(this@MainActivity,DetailActivity::class.java)
detailIntent.putParcelableArrayListExtra(额外用户,用户)
startActivity(详细意图)
}
}
私人娱乐附加项(){
for(在dataName.index中的位置){
val user=user(
dataAvatar.getResourceId(位置-1),
数据名[职位],
dataUname[职位]
)
用户。添加(用户)
}
adapter.users=用户
}
私人娱乐{
dataName=resources.getStringArray(R.array.name)
dataUname=resources.getStringArray(R.array.username)
dataAvatar=resources.obtainTypedArray(R.array.avatar)
}

}

首先,请查看有关imageview的android文档

它只接受单个资源整数。i、 e.您可以提供图像源,例如

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)
}
R.drawable.yourImage
实际上是一个int。这就是为什么exception会告诉您它希望在列表中找到int

setImageResource(R.drawable.yourImage)