List 如何在Kotlin中将项目添加到列表中?
我正在尝试将元素列表添加到字符串列表中,但我发现List 如何在Kotlin中将项目添加到列表中?,list,kotlin,collections,kotlin-android-extensions,List,Kotlin,Collections,Kotlin Android Extensions,我正在尝试将元素列表添加到字符串列表中,但我发现Kotlin没有像java那样的添加函数,因此请帮助我将项目添加到列表中 class RetrofitKotlin : AppCompatActivity() { var listofVechile:List<Message>?=null var listofVechileName:List<String>?=null var listview:ListView?=null var prog
Kotlin
没有像java
那样的添加函数,因此请帮助我将项目添加到列表中
class RetrofitKotlin : AppCompatActivity() {
var listofVechile:List<Message>?=null
var listofVechileName:List<String>?=null
var listview:ListView?=null
var progressBar:ProgressBar?=null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_retrofit_kotlin)
listview=findViewById<ListView>(R.id.mlist)
var apiInterfacee=ApiClass.client.create(ApiInterfacee::class.java)
val call=apiInterfacee.getTaxiType()
call.enqueue(object : Callback<TaxiTypeResponse> {
override fun onResponse(call: Call<TaxiTypeResponse>, response: Response<TaxiTypeResponse>) {
listofVechile=response.body()?.message!!
println("Sixze is here listofVechile ${listofVechile!!.size}")
if (listofVechile!=null) {
for (i in 0..listofVechile!!.size-1) {
//how to add the name only listofVechileName list
}
}
//println("Sixze is here ${listofVechileName!!.size}")
val arrayadapter=ArrayAdapter<String>(this@RetrofitKotlin,android.R.layout.simple_expandable_list_item_1,listofVechileName)
listview!!.adapter=arrayadapter
}
override fun onFailure(call: Call<TaxiTypeResponse>, t: Throwable) {
}
})
}
}
class-kotlin:AppCompatActivity(){
变量listofVechile:列表?=null
变量listofVechileName:列表?=null
变量listview:listview?=null
变量progressBar:progressBar?=null
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity\u Reformation\u kotlin)
listview=findViewById(R.id.mlist)
var apinterfaceee=ApiClass.client.create(apinterfaceee::class.java)
val call=apinterfaceee.getTaxiType()
排队(对象:Callback{
覆盖fun onResponse(调用:调用,响应:响应){
listofVechile=response.body()?.message!!
println(“Sixze在这里是listofVechile${listofVechile!!.size}”)
if(listofVechile!=null){
对于(0..listofVechile!!.size-1中的i){
//如何添加仅名称的listofVechileName列表
}
}
//println(“这里是Sixze${listofVechileName!!.size}”)
val arrayadapter=arrayadapter(this@RetrofitKotlin,android.R.layout.simple\u可扩展\u列表\u项目\u 1,listofVechileName)
listview!!.adapter=arrayadapter
}
覆盖失效时的乐趣(调用:调用,t:可丢弃){
}
})
}
}
您应该使用类似ArrayList的可变列表
var listofVechileName:List<String>?=null
var listofVechileName:List?=null
变成
var listofVechileName:ArrayList<String>?=null
var-listofVechileName:ArrayList?=null
这样,您就可以使用add方法
更惯用的方法是使用
MutableList
,而不是专门使用ArrayList
。您可以声明:
val listOfVehicleNames: MutableList<String> = mutableListOf()
与其使用不可变的常规列表,不如使用可变的arrayListof 因此,您的常规列表将成为
var listofVehicleNames = arrayListOf("list items here")
然后可以使用add函数
listOfVehicleNames.add("what you want to add")
如果您不想或不能直接使用数组列表,请将此代码用于“添加项”
itemsList.toMutableList().add(item)
itemlist:您的项目列表
item:您要添加的项谈论惯用方法 对于任何特定的类,以下内容可能会有所帮助
var newSearchData = List<FIRListValuesFromServer>()
for (i in 0 until this.singleton.firListFromServer.size) {
if (searchText.equals(this.singleton.firListFromServer.get(i).FIR_SRNO)) {
newSearchData.toMutableList().add(this.singleton.firListFromServer.get(i))
}
}
var newSearchData=List()
for(在0中输入i,直到这个.singleton.firListFromServer.size){
if(searchText.equals(this.singleton.firListFromServer.get(i.FIR_SRNO)){
newSearchData.toMutableList().add(this.singleton.firListFromServer.get(i))
}
}
嗯?你在说什么名单?Kotlin列表是Java列表,不是吗?如果外文名字让我不舒服,我很抱歉。@Steve我说的是var listofVechileName:List?=null如何在上面添加项您需要后退一步,阅读文档来学习Kotlin的基本原理,只需阅读文档:啊,是的……不可变的东西。我只是没有把2和2放在一起。这很有道理。我还没有做足够的Kotlin编码。这与阅读文档无关。更确切地说,这是关于用Java做日常工作,并且必须用Kotlin思考。一个简单的答案,你不能直接将项目添加到列表中,而不将其转换为可变形式。JB Nizet说的是真的,但如果我的答案解决了你的问题,请将其标记为正确。我不想更改太多作者,但是有人让我注意到你应该避免初始化为null,使用lazeinitOh会更好是的,这太明显了!比java容易得多。我很高兴我们换了。
itemsList.toMutableList().add(item)
var newSearchData = List<FIRListValuesFromServer>()
for (i in 0 until this.singleton.firListFromServer.size) {
if (searchText.equals(this.singleton.firListFromServer.get(i).FIR_SRNO)) {
newSearchData.toMutableList().add(this.singleton.firListFromServer.get(i))
}
}