2017-09-27 4 views
0

私はいくつかの項目を含むスピナーを持つアプリケーションを持っています。 私はそれをすべて作成しましたAndroid Koltinは変更可能なリストにスピナー値を渡します

私はどのように私が持っているリストにこれらの値を渡すことができますか? mutableListを使用しますか?私はあなたがこのように行うことができると信じて

乾杯

class NewKitListActivity : AppCompatActivity() { 

var spinnerArray = arrayOf("Dumbell", "Punching Bag", "Yoga Ball", "Skipping Rope") 

val kitMutableList = mutableListOf(spinnerArray) 





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



    val spinner = newKitItemSpinner 
    val spinnerArrayAdapter = ArrayAdapter(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 

    spinner.onItemSelectedListener = object : OnItemSelectedListener { 
     override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) { 
      val selectedItem = parent.getItemAtPosition(position).toString() 
      if (selectedItem == "Dumbell") { 

       // mutableListAdapter.toMutableList() 
       //mutableList.adapter = mutableListAdapter 


      } 
     } // to close the onItemSelected 

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

     } 
    } 
+0

コードを投稿してください。あなたが試したことと働いていないことを教えてください。 – FWeigl

+0

それがmutableList valを作成する方法であるかどうかはわかりません。そして、私が持っている2つのコメントされたものを見て、彼らは正しいのですか? – KirstyHA

答えて

1

。 1.メイクカスタムまたは複数のアダプタ 2.文字列は、スピナーは、ユーザーが選択したときに、それは最初のアダプタとリスト 5から値をロードする最初の時間をロードしたとき 3.選択した値 4を保持している変更可能なリストを作成し値保持最初のリストを作成しますそれは、その後の変更はその後、変更可能なリストから新しいアダプタの負荷値を設定する明確な最初のアダプタに通知項目あなたのselectedItemsの格納に

//Mutable List for storing selected items 

val selectedItems: MutableList<String>? = 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]) 

       // Clear Adapter 
       spinner.adapter = null 
       // Notify data set changed 
       spinnerArrayAdapter.notifyDataSetChanged() 
       // Set New Data adapter 
       spinner.adapter = ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, selectedItems) 


      } 

      override fun onNothingSelected(arg0: AdapterView<*>) { 
       // TODO: Auto-generated method stub 


      } 

     } 
+0

リストに値を設定していません... – KirstyHA

+0

なぜselectedItemsリストをインスタンス化していませんか? – FWeigl

0

リストを作成します(私は最後のアダプターへの変更を通知する必要がありますないと確信しています):

val selectedItems = mutableListOf<String>() 

次に選択したアイテムを追加します:

override fun onItemSelected(arg0: AdapterView<*>, arg1: View, position: Int, id: Long) { 

      selectedItems.add(spinnerArray[position]) 

    } 
関連する問題