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, 上面是第二个activity DetailActivity.kt,在第一节将显示一个图像(imgAvatar.setImageresource(users)),出现一个错误 我使用arraylist和parcelable以图像和文本的形式发送数据集 “类型不匹配 必填项:Int 找到:kotlin.collection.ArrayList“ 这是MainActivity.kt的代码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
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)