【发布时间】:2018-08-12 06:22:26
【问题描述】:
如何使用 Gson-Volley 访问 idClubLocal?我得到了 codCompeticion 和 nomCompeticion 但没有办法做到这一点 idClubLocal
[{"codeCompeticion": "26", "nomCompeticion": "Equipo", "jornadas": [ {"idClubLocal": "xxxxx"....
FragJor 实际
class FragJorActual : Fragment() {
private val TAG = "MainActivity"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
retainInstance = true
requestJsonObject()
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val view = inflater.inflate(R.layout.activity_recycler, container, false)
val miTexto: TextView = view.findViewById(R.id.tv_Grupo)
miTexto.setText(R.string.list_juveniles)
return view
}
private fun requestJsonObject() {
val queue = Volley.newRequestQueue(activity)
val url = "mi_url"
val stringRequest = StringRequest(Request.Method.GET, url, Response.Listener { response ->
val builder = GsonBuilder()
val mGson = builder.create()
var items: List<ModelArray> = ArrayList()
items = Arrays.asList(*mGson.fromJson(response, Array<ModelArray>::class.java))
recyclerView !!.layoutManager = GridLayoutManager(activity!!, 1)
val adapter = CalendarioAdapterArray(activity !!, items )
recyclerView !!.adapter = adapter
}, Response.ErrorListener { error -> Log.d(TAG, "Error " + error.message) })
queue.add(stringRequest)
}
}
日历适配器数组
class CalendarioAdapterArray(internal var context: Context, internal var jornadasList: List<ModelArray>) : RecyclerView.Adapter<CalendarioAdapterArray.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val itemView = LayoutInflater.from(parent.context).inflate(R.layout.calendario_row, parent, false)
return ViewHolder(itemView)
}
@RequiresApi(Build.VERSION_CODES.O)
@SuppressLint("SetTextI18n")
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val jornada = jornadasList[position]
holder.textEquipoLocal.text = jornada.jornad.idClubLocal
holder.textEquipoVisi.text = jornada.nomVisi
}
override fun getItemCount(): Int = jornadasList.size
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
var textEquipoLocal: TextView = itemView!!.findViewById<TextView>(R.id.tv_Equipo_Local) as TextView
var textEquipoVisi: TextView = itemView!!.findViewById<TextView>(R.id.tv_Equipo_Visitante) as TextView
}
}
模型数组
class ModelArray {
@SerializedName("codCompeticion")
@Expose
var Local: String? = null
@SerializedName("nomCompeticion")
@Expose
var nomVisi: String? = null
@SerializedName("jornadas")
@Expose
var jornad: List<ModelList>? = null
}
模型列表
类模型列表 {
@SerializedName("idClubLocal")
@Expose
var idClubLocal: String? = null
init {
this.idClubLocal = idClubLocal
}
}
【问题讨论】:
-
jornad是List。jornada.jornad.get(0).idClubLocal应该可以工作
标签: android kotlin gson android-volley