Так что я новичок в API. Я получил json API, и я изо всех сил пытаюсь использовать атрибуты, чтобы фактически показать его в моем текстовом представлении.
Мне нужно обновить textView_boat_title с именем каждой лодки в этом API. Представление переработчика настроено для обработки этого, но мне все еще нужно получить что-то еще, кроме нуля.
Я пробовал несколько способов приблизиться к этому, но безрезультатно. Заранее спасибо.
Класс моей модели:
//Gotten from POJO
@SerializedName("name")
@Expose
private Object name;
public Object getName() {
return name;
}
MainActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
recyclerView_main.layoutManager = LinearLayoutManager(this)
//recyclerView_main.adapter = MainAdapter()
fetchJson()
}
//Don't mind this
private fun fetchJson() {
println("Attempting to fetch JSON")
val url = "https://www.noforeignland.com/home/api/v1/places/"
val request = Request.Builder().url(url).build()
val client = OkHttpClient()
client.newCall(request).enqueue(object: Callback{
override fun onResponse(call: Call, response: Response) {
val body = response.body?.string()
println(body)
val gson = GsonBuilder().create()
val homeFeed = gson.fromJson(body, Models::class.java)
runOnUiThread {
recyclerView_main.adapter = MainAdapter(homeFeed)
}
}
override fun onFailure(call: Call, e: IOException) {
println("Failed to execute request")
}
})
}
}
MainAdapter
class MainAdapter(var models: Models) : RecyclerView.Adapter<CustomViewHolder>() {
private val boatTitles = listOf("First boat", "Second", "3rd")
//number of items
override fun getItemCount(): Int {
val list = ArrayList<Models>()
//TODO: get a dynamic count from API
return 3
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder {
// how do we even create a view
val layoutInflater = LayoutInflater.from(parent.context)
val cellForRow = layoutInflater.inflate(R.layout.activity_boat_row, parent, false)
return CustomViewHolder(cellForRow)
}
override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {
val boat = boatTitles.get(position)
holder.view.textView_boat_title.text = boat
}
}
class CustomViewHolder(val view: View): RecyclerView.ViewHolder(view) {
}