Android заполняет массив с помощью данных firebase, а не строк

Я новичок в 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() } })}} 

Я полностью удалил свой ответ вчера и изменил его с помощью этого

Я нашел эту библиотеку из этого ответа

это должен быть лучший способ разбора json в kotlin сейчас.

вы можете найти все ответы по ссылке, но вот некоторые основные шаги:

  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.