как я могу отправить массив json через адаптер?
Мне нужно показать некоторые данные из моего json: (показать сначала «name», затем «sub1», который содержит data1.X.X и, наконец, data2.X.X). пока я показываю только «название» элемента.
[
{
"name": "name",
"array": {
"sub1": [
[
"data1.1.0",
"data1.1.1",
"1"
],
[
"data1.2.0",
"data1.2.1",
"1"
]
],
"sub2": [
[
"data2.1.0",
"data2.1.1",
"1"
]
]
}
}
]
Это мой адаптер:
class ListAdapterScolaire (context: Context, resource: Int, list: ArrayList<String>, private val arguments: Bundle?, private val forScol : Boolean) : MatchableArrayAdapter<String>(context, resource, list) {
private val TAG = ListAdapterScolaire::class.java.simpleName
override fun onBind(item: String?, itemView: View?, position: Int) {
super.onBind(item, itemView, position)
if (itemView != null){
val arret = itemView.findViewById<TextView>(R.id.arret)
arret?.text = "name"
val aller = itemView.findViewById<TextView>(R.id.aller)
aller.text = "data1.1" + "data1.2"
val retour= itemView.findViewById<TextView>(R.id.retour)
retour.text = "data2.1" + "data2.2"
}
}
Мой адаптер расширяет этот класс. Это позволяет мне добавлять несколько уровней кода для моего макета. Под "многоуровневым" я подразумеваю, что могу использовать, например, LinearLayout, где обычно есть только простой TextView.
См. Мой макет listView (это файл xml, который будет использоваться для отображения каждого моего содержимого json):
<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_height = "wrap_content"
android:layout_width = "match_parent"
xmlns:tools = "http://schemas.android.com/tools"
android:orientation = "vertical">
<TextView
android:id = "@+id/arret"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:textAppearance = "?android:attr/textAppearanceListItemSmall"
android:gravity = "center_vertical"
android:paddingStart = "?android:attr/listPreferredItemPaddingStart"
android:paddingEnd = "?android:attr/listPreferredItemPaddingEnd"
android:background = "?android:attr/activatedBackgroundIndicator"
android:minHeight = "?android:attr/listPreferredItemHeightSmall"
android:layout_margin = "0dp"
tools:text = "Nom arret"
/>
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:orientation = "vertical">
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:orientation = "horizontal"
android:paddingStart = "15dp"
android:paddingEnd = "0dp">
<TextView
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:textAppearance = "?android:attr/textAppearanceListItemSmall"
android:gravity = "center_vertical"
android:paddingStart = "?android:attr/listPreferredItemPaddingStart"
android:paddingEnd = "?android:attr/listPreferredItemPaddingEnd"
android:background = "?android:attr/activatedBackgroundIndicator"
android:minHeight = "?android:attr/listPreferredItemHeightSmall"
android:layout_margin = "0dp"
tools:text = "Aller"
android:id = "@+id/aller"
/>
</LinearLayout>
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:orientation = "horizontal"
android:paddingStart = "15dp"
android:paddingEnd = "0dp">
<TextView
android:id = "@+id/retour"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:textAppearance = "?android:attr/textAppearanceListItemSmall"
android:gravity = "center_vertical"
android:paddingStart = "?android:attr/listPreferredItemPaddingStart"
android:paddingEnd = "?android:attr/listPreferredItemPaddingEnd"
android:background = "?android:attr/activatedBackgroundIndicator"
android:minHeight = "?android:attr/listPreferredItemHeightSmall"
android:layout_margin = "0dp"
tools:text = "Retour"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
РЕДАКТИРОВАТЬ :
Pojos
class myobject {
var array: array? = null
var name: String? = null
}
И
class array {
var dataFirst: Array<Array<String>>? = null
var dataSecond: Array<Array<String>>? = null
}
Лучше сначала преобразовать данные JSON в POJO. Затем вы сможете передать своему адаптеру «настоящие» объекты, которые хотите отобразить.
Что такое POJO? Я видел, что это самый простой объект
Его файл класса данных для создания объекта массива
Это для того, чтобы сделать объект таким?
Ваш класс Pojo будет выглядеть так: 'class UserProfile (var username: String)'
См. Обновленный ответ. Что дальше
ты можешь добавить pojo? у меня есть код для тебя, но я не знаю твоего pojo