Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발새발 블로그

RecyclerView + Json 파싱 본문

kotlin

RecyclerView + Json 파싱

SeanBlog 2019. 12. 13. 11:16
      binding.rv1.adapter = rvAdapter
      binding.rv1.layoutManager = LinearLayoutManager(this)

 

class RvAdapter(private val context : Context): RecyclerView.Adapter<ViewHolder>(){
 
     private var items: ArrayList<item>= ArrayList()
 
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val v : View = LayoutInflater.from(context).inflate(R.layout.item, parent, false)
        return ViewHolder(v)
 
    }
 
    override fun getItemCount(): Int {
        return items?.size!!
    }
 
    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.cloude.text = items?.get(position)?.date
        holder.main.text = items?.get(position)?.weather
    }
 
    fun addItem(item: item){
        items?.add(item)
        notifyDataSetChanged()
    }
 
 
 
}
 
class ViewHolder (view: View) : RecyclerView.ViewHolder(view) {
    // Holds the TextView that will add each animal to
    val main = view.findViewById<TextView>(R.id.main)
    val cloude = view.findViewById<TextView>(R.id.cloud)
}
 

 

 private fun setAllTime(allTimeConnection: AllTimeConnection) {
        val call: Call<ResAlltimeData> = allTimeConnection.service.getWeather2("forecast","1835841""472bc4b8b7c94d954600861c857a2ca9")
        call.enqueue(object : Callback<ResAlltimeData> {
 
            override fun onResponse(call: Call<ResAlltimeData>, response: Response<ResAlltimeData>) {
                if (response.isSuccessful) {
                    val body = response.body()
                    body?.list?.let {
                        for ( x in it  )
                        {
                            Log.d( "date_" + x.dt_txt, "" + x.main.temp)
                            rvAdapter.addItem(item(x.dt_txt,x.weather[0].description))
 
                        }
                   }
              
                }
            }
 
            override fun onFailure(call: Call<ResAlltimeData>, t: Throwable) {
                Log.d("this is error", t.message)
                t.printStackTrace()
            }
        }
        )
 
    }
 
Comments