问题描述
我不知道如何解决arrayadapter参数的错误,它向我显示此错误:
Type mismatch. required:(Mutable)List<TypeVariable(T)!> Found: ArrayList<String!>?
只有当我将字符串的ArrayList从主要活动转移到另一个活动时,这种情况才会发生。
class playerList2 : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_player_list3)
var intent = intent
var liste = intent.getStringArrayListExtra("players")
val adapt = ArrayAdapter(this,android.R.layout.simple_list_item_1,liste)
listView.adapter = adapt
}
}
解决方法
我认为这是因为“ liste”可能为空,请看一下最后的“?”的ArrayList
val adapt = ArrayAdapter(this,android.R.layout.simple_list_item_1,liste!!)
安全的方式是:
liste?.let{
val adapt = ArrayAdapter(this,it)
}
或者,正如@cactustictacs指出的那样,这将是最正确的方法:
val adapt = ArrayAdapter(this,liste ?: emptyList())
我建议始终使用安全方式!