Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 改装响应问题_Android_Kotlin_Retrofit2_Spinner - Fatal编程技术网

Android 改装响应问题

Android 改装响应问题,android,kotlin,retrofit2,spinner,Android,Kotlin,Retrofit2,Spinner,我试图通过改造和添加可搜索微调器来获得州列表 我得到的是: 我得到了一份回应的州名单 我可以在微调器中访问一个状态。 我想要的是: 我想在微调器中访问多个状态 代码: getMainApp().electAPI.getStates().enqueue(object : Callback<Responseval>{ override fun onFailure(call: Call<Responseval>, t: Throwable) {

我试图通过改造和添加可搜索微调器来获得州列表

我得到的是:

我得到了一份回应的州名单

我可以在微调器中访问一个状态。 我想要的是:

我想在微调器中访问多个状态

代码:

getMainApp().electAPI.getStates().enqueue(object : Callback<Responseval>{
            override fun onFailure(call: Call<Responseval>, t: Throwable) {
                Toast.makeText(this@MainActivity, t?.message, Toast.LENGTH_SHORT)
            }

            override fun onResponse(call: Call<Responseval>, response: Response<Responseval>) {
                if (response.isSuccessful!!){
                    val states = response.body()?.data
                    val stateArray = arrayListOf<String>(states?.get(0)!!.name)// Problem occur here i need to put value to get state
                    val spinner = findViewById<Spinner>(R.id.spinner)
                    val adapter = ArrayAdapter<String>(this@MainActivity, android.R.layout.simple_spinner_item, stateArray)
                    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
                    spinner.adapter = adapter
                    val options = stateArray
                    spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
                        override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
                            Toast.makeText(this@MainActivity, " You select >> "+options[position], Toast.LENGTH_SHORT).show();
                        }

                        override fun onNothingSelected(parent: AdapterView<*>) {

                            // sometimes you need nothing here
                        }
                    }
                }
            }

        })
getMainApp().electAPI.getStates().enqueue(对象:回调{
覆盖失效时的乐趣(调用:调用,t:可丢弃){
Toast.makeText(this@MainActivity,t?。留言,祝酒词。长度(短)
}
覆盖fun onResponse(调用:调用,响应:响应){
if(response.issusccessful!!){
val状态=响应.body()?.data
val stateArray=arrayListOf(states?.get(0)!!.name)//这里出现问题,我需要输入值以获取状态
val微调器=findViewById(R.id.spinner)
val适配器=阵列适配器(this@MainActivity,android.R.layout.simple\u微调器\u项,stateArray)
adapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项)
spinner.adapter=适配器
val options=stateArray
spinner.onItemSelectedListener=对象:AdapterView.onItemSelectedListener{
覆盖已选择(父项:AdapterView,视图:view,位置:Int,id:Long){
Toast.makeText(this@MainActivity,“您选择>>”+选项[位置],Toast.LENGTH\u SHORT.show();
}
覆盖未选择的乐趣(父项:AdapterView){
//有时候你在这里什么都不需要
}
}
}
}
})
博克斯:

data class Responseval(val `data`: List<Data>, val message: String, val success: Boolean)

data class Data(val created_at: String, val id: Int, val name: String, val status: Int, val updated_at: String)
data-class-Responseval(val`data`:List,val-message:String,val-success:Boolean)
数据类数据(val创建时间:String,val id:Int,val名称:String,val状态:Int,val更新时间:String)

您可以使用这样的循环

getMainApp().electAPI.getStates().enqueue(object : Callback<Responseval>{
            override fun onFailure(call: Call<Responseval>, t: Throwable) {
                Toast.makeText(this@MainActivity, t?.message, Toast.LENGTH_SHORT)
            }

            override fun onResponse(call: Call<Responseval>, response: Response<Responseval>) {
                if (response.isSuccessful!!){
                    val states = response.body()?.data
                    var stateArray = arrayListOf<String>
                    for(i = 0; i<response.body.data.size; i++){
                        stateArray.add(response.body.data.get(i).name)
                    }
                    val spinner = findViewById<Spinner>(R.id.spinner)
                    val adapter = ArrayAdapter<String>(this@MainActivity, android.R.layout.simple_spinner_item, stateArray)
                    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
                    spinner.adapter = adapter
                    val options = stateArray
                    spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
                        override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
                            Toast.makeText(this@MainActivity, " You select >> "+options[position], Toast.LENGTH_SHORT).show();
                        }

                        override fun onNothingSelected(parent: AdapterView<*>) {

                            // sometimes you need nothing here
                        }
                    }
                }
            }

        })
getMainApp().electAPI.getStates().enqueue(对象:回调{
覆盖失效时的乐趣(调用:调用,t:可丢弃){
Toast.makeText(this@MainActivity,t?。留言,祝酒词。长度(短)
}
覆盖fun onResponse(调用:调用,响应:响应){
if(response.issusccessful!!){
val状态=响应.body()?.data
val stateArray=数组(states.size())

对于(inti=0;i,此方法将缩短在数组中添加项的时间

getMainApp().electAPI.getStates().enqueue(object : Callback<Responseval>{
            override fun onFailure(call: Call<Responseval>, t: Throwable) {
                Toast.makeText(this@MainActivity, t?.message, Toast.LENGTH_SHORT)
            }

            override fun onResponse(call: Call<Responseval>, response: Response<Responseval>) {
                if (response.isSuccessful!!){
                    val states = response.body()?.data
                    var stateArray = arrayListOf<String>
                    for(state in states){
                        stateArray.add(states.get(i).name)
                    }
                    val spinner = findViewById<Spinner>(R.id.spinner)
                    val adapter = ArrayAdapter<String>(this@MainActivity, android.R.layout.simple_spinner_item, stateArray)
                    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
                    spinner.adapter = adapter
                    val options = stateArray
                    spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
                        override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
                            Toast.makeText(this@MainActivity, " You select >> "+options[position], Toast.LENGTH_SHORT).show();
                        }

                        override fun onNothingSelected(parent: AdapterView<*>) {

                            // sometimes you need nothing here
                        }
                    }
                }
            }

        })
getMainApp().electAPI.getStates().enqueue(对象:回调{
覆盖失效时的乐趣(调用:调用,t:可丢弃){
Toast.makeText(this@MainActivity,t?。留言,祝酒词。长度(短)
}
覆盖fun onResponse(调用:调用,响应:响应){
if(response.issusccessful!!){
val状态=响应.body()?.data
var stateArray=arrayListOf
for(州中的州){
stateArray.add(states.get(i).name)
}
val微调器=findViewById(R.id.spinner)
val适配器=阵列适配器(this@MainActivity,android.R.layout.simple\u微调器\u项,stateArray)
adapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项)
spinner.adapter=适配器
val options=stateArray
spinner.onItemSelectedListener=对象:AdapterView.onItemSelectedListener{
覆盖已选择(父项:AdapterView,视图:view,位置:Int,id:Long){
Toast.makeText(this@MainActivity,“您选择>>”+选项[位置],Toast.LENGTH\u SHORT.show();
}
覆盖未选择的乐趣(父项:AdapterView){
//有时候你在这里什么都不需要
}
}
}
}
})

由于arrayListOf(states?.get(0)!!.name),您需要发布json响应的sir@SantanuSurthis。您刚刚获得了该州的第一个名称。对,我想要所有州的名称
getMainApp().electAPI.getStates().enqueue(object : Callback<Responseval>{
        override fun onFailure(call: Call<Responseval>, t: Throwable) {
            Toast.makeText(this@MainActivity, t?.message, Toast.LENGTH_SHORT)
        }

        override fun onResponse(call: Call<Responseval>, response: Response<Responseval>) {
            if (response.isSuccessful!!){
                val states = response.body()?.data
                val stateArray = Array<String>(states.size())
for(int i=0;i<sates.size();i++)
{
    stateArray[i]=sates.get(i).name;

    if(i == (sates.size() -1) )
    {
     val spinner = findViewById<Spinner>(R.id.spinner)
                val adapter = ArrayAdapter<String>(this@MainActivity, android.R.layout.simple_spinner_item, stateArray)
                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
                spinner.adapter = adapter
                val options = stateArray
                spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
                    override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
                        Toast.makeText(this@MainActivity, " You select >> "+options[position], Toast.LENGTH_SHORT).show();
                    }

                    override fun onNothingSelected(parent: AdapterView<*>) {

                        // sometimes you need nothing here
                    }
                }
            }
    }
}
        }

    })
getMainApp().electAPI.getStates().enqueue(object : Callback<Responseval>{
            override fun onFailure(call: Call<Responseval>, t: Throwable) {
                Toast.makeText(this@MainActivity, t?.message, Toast.LENGTH_SHORT)
            }

            override fun onResponse(call: Call<Responseval>, response: Response<Responseval>) {
                if (response.isSuccessful!!){
                    val states = response.body()?.data
                    var stateArray = arrayListOf<String>
                    for(state in states){
                        stateArray.add(states.get(i).name)
                    }
                    val spinner = findViewById<Spinner>(R.id.spinner)
                    val adapter = ArrayAdapter<String>(this@MainActivity, android.R.layout.simple_spinner_item, stateArray)
                    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
                    spinner.adapter = adapter
                    val options = stateArray
                    spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
                        override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
                            Toast.makeText(this@MainActivity, " You select >> "+options[position], Toast.LENGTH_SHORT).show();
                        }

                        override fun onNothingSelected(parent: AdapterView<*>) {

                            // sometimes you need nothing here
                        }
                    }
                }
            }

        })