如何解决如何以使用arraylist和parcelable发送的意图过程中的图像形式显示数据?
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
}
}
这是我第一次学习 Android Studio 和 Kotlin, 上面是第二个Activity DetailActivity.kt,在我会显示图片的部分(imgAvatar.setimageresource(users)),出现错误 我使用arraylist和parcelable以图像和文本的形式发送数据集 "类型不匹配 必需:整数 找到:kotlin.collection。数组列表“
这里是 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)
}
}
解决方法
首先,请查看关于 imageview setImageResource
的 android 文档它只接受单个资源整数。即您可以提供图像源,例如
setImageResource(R.drawable.yourImage)
R.drawable.yourImage
实际上是一个整数。这就是为什么异常告诉你它期望 int 但是找到列表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。