【发布时间】:2021-04-17 06:33:00
【问题描述】:
我已经设置了一些 API 数据以显示在我的 Android APP 上
[ {"attendanceID":1,"userID":1,"date":"14 Apr","clock_in":"10:11","clock_out":"19:39","noted":"Weekday"}, {"attendanceID":2,"userID":1,"date":"15 Apr","clock_in":"23:09","clock_out":"N.A.","noted":"Weekday"}, {"attendanceID":3,"userID":1,"date":"16 Apr","clock_in":"19:19 ","clock_out":"19:42 ","noted":"Weekday"} ]
我的数据模型是这样的
data class Attendance ( val userID: Int, val date: String?, val clock_in: String?, val clock_out: String?, val noted: String? )
界面是这样的
interface INodeJS { @GET("load_attendance") fun loadAttendance(): Call<ArrayList<Attendance>> }
我的代码是这样的
import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Toast import androidx.recyclerview.widget.LinearLayoutManager import com.example.absensi.ui.retrofit.INodeJS import com.example.absensi.ui.retrofit.RetrofitClient import kotlinx.android.synthetic.main.activity_detail_absensi.* import retrofit2.Call import retrofit2.Callback import retrofit2.Response class DetailAbsensi : AppCompatActivity() { lateinit var myAPI : INodeJS private val attendanceList = ArrayList<Attendance>() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_detail_absensi) val retrofit = RetrofitClient.instance myAPI = retrofit.create(INodeJS::class.java) rvAttendance.setHasFixedSize(true) rvAttendance.layoutManager = LinearLayoutManager(this) myAPI.loadAttendance().enqueue(object : Callback<ArrayList<Attendance>> { override fun onResponse( call: Call<ArrayList<Attendance>>, response: Response<ArrayList<Attendance>> ) { attendanceList.addAll(response.body()!!) val adapter = AttendanceAdapter(attendanceList) rvAttendance.adapter = adapter } override fun onFailure(call: Call<ArrayList<Attendance>>, t: Throwable) { } }) } }
但是当我打开 DetailAbsensi 时,我总是会收到此错误
E/RecyclerView:没有附加适配器;跳过布局
所以在检查我的代码几个小时后,我发现在运行代码 myAPI.loadAttendance().enqueue 时,我在检查 response.body() 时得到的响应都是空的
[ Attendance{userID=0,date="Null",clockin="Null",clockout="Null",noted="Noted"}, Attendance{userID=0,date="Null",clockin="Null",clockout="Null",noted="Noted"}, Attendance{userID=0,date="Null",clockin="Null",clockout="Null",noted="Noted"} ]
【问题讨论】:
标签: android kotlin arraylist retrofit2