마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Kotlin RecyclerView에서 맨위로 스크롤 하면 갱신되는것 무엇인가요?

0 추천

Kotlin으로 RecyclerView를 만들었습니다

자동갱신은 어렵네요 수동으로라고 맨위로 스크롤 하면 갱신되게 하려고 하는데

어떻게 하는지 알려주세요

 

package com.example.realcapston

import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.fragment_list.*
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory


class ListFragment : Fragment() {

    private val url = "https://api.overlog.io/"

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
    ): View? {
        return inflater.inflate(R.layout.fragment_list, container, false)
    }

    private fun setAdapter(comList: ArrayList<ComModel>) {
        mRecyclerView.adapter = ComAdapter(comList) { com -> comItemClicked(com) }
        mRecyclerView.layoutManager = LinearLayoutManager(this.context)
        mRecyclerView.setHasFixedSize(false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {


        val retrofit = Retrofit.Builder()
            .baseUrl(url)
            .addConverterFactory(GsonConverterFactory.create())
            .build()

        val retrofitService = retrofit.create(RetrofitInterface::class.java)


        retrofitService.getRequest().enqueue(object : Callback<List<ComModel>> {
            override fun onResponse(
                call: Call<List<ComModel>>,
                response: Response<List<ComModel>>
            ) {
                val body = response.body()

                setAdapter(body as ArrayList<ComModel>)
            }

            override fun onFailure(call: Call<List<ComModel>>, t: Throwable) {
                Log.d("통신에 실패하였습니다.", t.message)
            }
        })

    }


    private fun comItemClicked(com: ComModel?) {
//        Toast.makeText(context, "Clicked: ${com?.number}", Toast.LENGTH_SHORT).show()
        val nIntent = Intent(activity, detailActivity::class.java)
        nIntent.putExtra("comId",com?.id)
        startActivity(nIntent)
    }
}
Gamzal (340 포인트) 님이 2019년 10월 7일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...