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))

            }
        }