Android使用firebase数据而不是字符串填充arrayOf

我是firebase的新手,所以有些东西对我来说还是有点困惑。

我有一个数组: var spinnerArray = arrayOf("Dumbell", "Punching Bag", "Yoga Ball", "Skipping Rope") ,然后我传递给一个微调。 所有的工作。 虽然,现在我想把它带到下一个层次,而不是用添加到数组中的字符串填充微调框,我希望它传递我的firebase数据库上的数据。 原因是,有些项目有子项目,所以我需要使用对象。

我真的不知道如何去取代这个。 你可以帮我吗

我已经将我的应用程序连接到实时数据库。

谢谢


  { "KitList" : { "kettle" : { "10KG" : "10KG", "5KG" : "5KG" }, "punchBag" : "punch bag", "sandbag" : "sandbag" } } 

有人告诉我,我不应该把这个价值等于这个关键?


这是我的模型

 class KitList(val title: String) { override fun toString(): String { return super.toString() }} 

这是微调的活动:

 class NewKitListActivity : AppCompatActivity() { var database = FirebaseDatabase.getInstance() var myRef = database.getReference("KitList") var spinnerArray = arrayOf("Dumbell", "Punching Bag", "Yoga Ball", "Skipping Rope") inner class Item { var IdItem: Int = 0 var Item: String? = null var SubItems: ArrayList<Item>? = null } var newKitList = mutableListOf<String>() val selectedItems: MutableList<String>? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_new_kit_list) var context = this; var addButton = addKitItemBtn 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 val kitList = newKistListView val listViewAdapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, newKitList) kitList.adapter = listViewAdapter addButton.setOnClickListener(object : View.OnClickListener { override fun onClick(v: View?) { val selectedItem = spinner.selectedItem.toString() newKitList.add(selectedItem) listViewAdapter.notifyDataSetChanged() } })}} 

我已经完全删除了我的答案昨天,并改变了这一个

我从这个答案中找到了这个库

这应该是现在在kotlin中解析json的最好方法。

你可以找到链接上的所有答案,但这里有一些基本的步骤:

  1. 安装

     repositories { jcenter() } dependencies { compile 'com.beust:klaxon:0.30' } 
  2. 假设你有这个json:

     [ { "name" : "John", "age" : 20 }, { "name" : "Amy", "age" : 25 }, { "name" : "Jessica", "age" : 38 } ] 

我们可以很容易地收集所有的年龄如下:

 val array = parse("/e.json") as JsonArray<JsonObject> val ages = array.long("age") println("Ages: $ages") // Prints: Ages: JsonArray(value=[20, 25, 38]) 

你基本上有两个选择:

  1. 实现SpinnerAdapter,以便传递Firebase对象并使用它来代替ArrayAdapter。
  2. 将您的Firebase对象转换为字符串并将其传递给ArrayAdapter。