Android Kotlin从Spinner

时间:2017-09-27 10:26:49

标签: android listview kotlin

我是Android开发和Kotlin的新手。 我创建了一个带有一些字符串的微调器。之后,我想从微调器中添加所选项目并将其添加到列表中,最后一步是将该列表保存为另一个列表中显示的对象(只是名称),如果我单击它,它将打开我之前创建的列表。

我会告诉你代码和我的布局,这样你就能更好地理解我所做的和缺失的事情

从这里layout(这是保存的列表将去的地方 - activity_kit_list): 我点击新建并转到我的另一项活动(但由于我的声誉而无法显示) - activity_new_kit_list: (创建此步骤)

然后,我点击微调器,它显示我拥有的数组(正在工作)。我无法解决的问题是我如何使其余的工作。

NewKitListActivity:

class NewKitListActivity:AppCompatActivity(){

var spinnerArray = arrayOf("Dumbell", "Punching Bag", "Yoga Ball", "Skipping Rope")
//var spinnerArray = arrayOf(DataService.kitList)



override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_new_kit_list)



    val spinner = newKitItemSpinner
    val spinnerArrayAdapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray)
    //selected item will look like a spinner set from XML
    spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
    spinner.adapter = spinnerArrayAdapter}}

请指点什么?

P.S。:我有一个存储arrayOf的DataService对象。我试图调用它而不是按照你看到的那样输入字符串,但它没有用(你可以在那里看到注释的var)。有什么理由没有?

由于

1 个答案:

答案 0 :(得分:0)

嗨Joe可能会对此代码有所帮助。我在这段代码中做了什么

  1. 设置空可变列表以存储所选项目
  2. 在项目选定的侦听器上设置微调器
  3. 当我选择了在可变列表中添加的项目时

    //用于存储所选项目的可变列表         val selectedItems:MutableList? = null

         // Listen On select for spinner
                spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
    
                    //Performing action onItemSelected and onNothing selected
                    override fun onItemSelected(arg0: AdapterView<*>, arg1: View, position: Int, id: Long) {
    
                       // Add selected item in Mutable List
                       selectedItems.add(spinnerArray[position])
    
    
                    }
    
                    override fun onNothingSelected(arg0: AdapterView<*>) {
                        // TODO: Auto-generated method stub
    
    
                    }
    
                }