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

kotlin으로 RecyclerView 만들었는데 4초마다 갱신을 하고 싶습니다

0 추천

RecyclerView 4초마다 갱신하기위해 어떻게 해야 합니까?

notifyDataSetChanged()를 어디에 사용해야 하나요

 

 

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일 질문

1개의 답변

0 추천

4초마다 데이터를 갱신하게끔 코드를 짜셔야 합니다.

 

https://developer.android.com/reference/android/app/AlarmManager

확인해 보세요~

뱅구다 (11,280 포인트) 님이 2019년 10월 7일 답변
적절하지 않은 답변..
...