E/RecyclerView: No adapter attached; skipping layout
[Ad&Kotlin]-Kotlin문법/99. 오류 모읍집 2022. 1. 8. 17:561. 오류상세
- E/part3.chapter0: Unknown bits set in runtime_flags: 0x8000
E/RecyclerView: No adapter attached; skipping layout
2. 사용 Libaray 및 기능
- RecyclerView
- binding
3. 발생이유
- RecyclerView 사용기능 확인
- binding 기법 확인
9. 해결방법 - 1
- getItemCount() 함수에서 return 시 size 확인
Log를 이용해서 size가 정확히 return 되는지 확인 한다.
- Adapter를 ListAdapter로 상속받아서 개발하면 getItemCount( ) 메서드를 생성하지 않아도 된다.
- script
public int getItemCount() {
Log.d("size", data.size())
return data.size();
}
9. 해결방법 - 2
- Adapter class는 정상적이라고 생각 하고...
Adapter class와 RecyclerView를 연결하는 부분을 확인한다.
- 거의 layoutManager를 생성하지 않았을 경우에 위와 같은 오류가 발생한다.
- 참고, layoutManager는 kotlin소스 내부에서도 할 수 있자만 View속성에서도 지정할 수 있다.
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_list"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
- script
private lateinit var adapter: BookAdapter
private fun initBookRecyclerView() {
adapter = BookAdapter()
binding.bookRecyclerView.layoutManager = LinearLayoutManager(this)
binding.bookRecyclerView.adapter = adapter
}
9. 해결방법 - 3
- binding 방식으로 개발 했으면서 setContentView에 binding방식으로 변경하지 않은 경우
- default MainActivity.kt는 setContentView(R.id.activity_main) 으로 되어 있는데
이것을 binding방식으로 개발할 때는 setContentView(binding.root)로 변경해야 된다.
- RecyclerView를 사용하면서 binding.root로 변경하지 않으면 위와 같은 오류가 발생한다.
- script
private lateinit var binding: ActivityMainBinding
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
'[Ad&Kotlin]-Kotlin문법 > 99. 오류 모읍집' 카테고리의 다른 글
Room cannot verify the data integrity (0) | 2022.01.10 |
---|---|
No type arguments expected for class Call (0) | 2022.01.04 |
NoConnectionError. ClearTextHTTP traffic (0) | 2021.12.30 |