-
fetchListData() 일반적인 디자인 패턴Android_Kotlin/Android_공부 2023. 8. 8. 15:32728x90
아래 코드 예시는 리스트 초기화까지 포함하여 데이터를 가져오는 함수의 디자인 패턴을 보여주고 있습니다.
import retrofit2.Call import retrofit2.Callback import retrofit2.Response class YourViewModel { // Retrofit 서비스 인스턴스... private val apiService = RetrofitUtil.getRetrofit() // 리스트 데이터를 가져오는 함수 fun fetchListData() { // API 요청 초기화 ... val call: Call<List<YourDataItem>> = apiService.getListData() // 데이터를 담을 리스트 초기화 ... val dataList = mutableListOf<YourDataItem>() // 비동기적으로 요청 보내기 ... call.enqueue(object : Callback<List<YourDataItem>> { override fun onResponse(call: Call<List<YourDataItem>>, response: Response<List<YourDataItem>>) { if (response.isSuccessful) { // 성공적인 응답 처리 ... val data: List<YourDataItem>? = response.body() if (data != null) { dataList.clear() // 리스트 초기화 dataList.addAll(data) // 데이터 추가 processData(dataList) } } else { // 에러 응답 처리 ... handleErrorResponse(response.code()) } } override fun onFailure(call: Call<List<YourDataItem>>, t: Throwable) { // 네트워크 또는 기타 실패 처리 ... handleFailure(t) } }) } // 데이터 가공 함수 private fun processData(data: List<YourDataItem>) { // 데이터 가공 후 UI 업데이트 또는 다른 작업 수행 // ex) // val processedData = data.process() // updateUI(processedData) } // 에러 응답 처리 private fun handleErrorResponse(errorCode: Int) { // 에러 코드에 따라 다른 에러 처리 } // 네트워크 또는 기타 실패 처리 private fun handleFailure(throwable: Throwable) { // 네트워크 실패, 타임아웃 또는 기타 예외 처리 } }
네트워크 요청 및 데이터 처리에 관한 일반적인 디자인 패턴입니다.
'Android_Kotlin > Android_공부' 카테고리의 다른 글
Fragment와 WebData 활용하기 (0) 2023.08.01 TextInputLayout 사용하기 (0) 2023.08.01 SQLite 실습1-2(추가 : 예외처리) (0) 2023.08.01 SQLite 실습1-2 (0) 2023.07.31 SQLite 실습1-1 (0) 2023.07.31