我是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()
}
})}}
答案 0 :(得分:0)
您基本上有两个选择:
答案 1 :(得分:0)
我昨天完全删除了我的答案,并用这个更改了
我从这个answer
找到了这个库这应该是现在在kotlin中解析json的最好方法。
你可以在链接上找到所有答案,但这里有一些基本步骤:
安装强>
repositories {
jcenter()
}
dependencies {
compile 'com.beust:klaxon:0.30'
}
让我们说你有这个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])