Я хотел бы получить данные команды Манчестер Сити из:
API Link с использованием OKHttp. Я хотел бы отобразить такую информацию, как название клуба, информационный логотип и т. Д. Сначала я попытался отобразить значок.
вот мой файл "Testgambar.kt"
package com.eldarcreative.portalbola
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.v7.widget.LinearLayoutManager
import com.google.gson.GsonBuilder
import kotlinx.android.synthetic.main.activity_tes_gambar.*
import okhttp3.*
import java.io.IOException
class TesGambar : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_tes_gambar)
detailrv.layoutManager= LinearLayoutManager(this)
fetchJSONHome()
}
fun fetchJSONHome(){
val urlhome = "https://www.thesportsdb.com/api/v1/json/1/lookupteam.php?id=133613"
val request = Request.Builder().url(urlhome).build()
val client = OkHttpClient()
client.newCall(request).enqueue(object: Callback {
override fun onResponse(call: Call, response: Response) {
val body = response?.body()?.string()
val gson = GsonBuilder().create()
val DataTeam= gson.fromJson(body, Datatim::class.java)
runOnUiThread {
detailrv.adapter = TeamAdapterZ(DataTeam)
}
}
override fun onFailure(call: Call, e: IOException) {
}
})
}
}
class Datatim(val loglog : List<DetailTim>)
Datatim.kt
data class DetailTim (
val idTeam:String?,
val strTeamLogo:String?,
val strTeamBadge:String?
)
TeamAdapterZ.kt
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.squareup.picasso.Picasso
import kotlinx.android.synthetic.main.activity_detail.view.*
public var logologo:String? = null
class TeamAdapterZ (val datatim :Datatim) : RecyclerView.Adapter<TeamAdapterZ.TeamViewHolder>(){
override fun onBindViewHolder(holder:TeamViewHolder, position: Int) {
val timdata=datatim.loglog.get(position)
holder.view.cadangantandang.text=timdata.idTeam
}
override fun getItemCount(): Int {
return datatim.loglog.count() ;
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TeamAdapterZ.TeamViewHolder {
val layoutInflater = LayoutInflater.from(parent.context)
val cellforrow = layoutInflater.inflate(R.layout.activity_detail, parent, false)
return TeamAdapterZ.TeamViewHolder(cellforrow)
}
class TeamViewHolder (val view: View):RecyclerView.ViewHolder(view){
}
}
Мой первый тест - выяснить, извлекаются ли данные или нет, но в logcat * возвращается нулевое значение
java.lang.NullPointerException: попытка вызвать метод интерфейса int java.util.Collection.size () для ссылки на пустой объект
at com.eldarcreative.portalbola.TeamAdapterZ.getItemCount (TeamAdapterZ.kt: 25)
Кто-нибудь знал, как это исправить?.