Я пытаюсь получить данные из JSON, используя модификацию и rx. Я следовал этому уроку . Но JSON из этого урока немного отличается от моего. Так что я просто изменил, как немного разобрать. Но если я получу JSON или нет, потому что я не знаю, откуда я знаю, что JSON уже вызван или нет, и в приложении он ничего не показывал.
Если кто-нибудь знает, как это работает и как сделать разбор, пожалуйста, наставьте меня.
Это мой код, в котором я хочу проанализировать данные JSON во фрагменте.
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
rv__list_posts?.layoutManager = LinearLayoutManager(this.requireContext())
val retrofit = Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(GsonBuilder().create()))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.baseUrl("https://www.thesportsdb.com/").build()
val postsApi = retrofit.create(INetworkAPI::class.java)
var response = postsApi.getAllPosts()
response.observeOn(AndroidSchedulers.mainThread()).subscribeOn(IoScheduler()).subscribe {
rv__list_posts.adapter = MainAdapter(listOf(it), this.requireContext())
}
}
Это мой интерфейс:
interface INetworkAPI {
@GET("api/v1/json/1/eventslast.php?id=133602")
fun getAllPosts(): Observable<Team>
}
Это адаптер:
class MainAdapter(val postList: List<Team>, val context: Context) :
RecyclerView.Adapter<MainAdapter.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):
ViewHolder {
return
ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_layout,parent,false))
}
override fun getItemCount(): Int {
return 10
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.itemView.home_team.text = postList.get(position).homeTeam
holder.itemView.home_score.text = postList.get(position).homeScore.toString()
holder.itemView.away_team.text = postList.get(position).awayTeam
holder.itemView.away_score.text = postList.get(position).awayScore.toString()
}
class ViewHolder(view: View) : RecyclerView.ViewHolder(view)
}
Ценю вашу помощь.