[Android] RecyclerView Adapter 명명 조심하기

thsamajiki·2024년 10월 9일
0

트러블슈팅

목록 보기
26/27
post-custom-banner

문제

class MainActivity: AppCompatActivity {
	private lateinit var binding: ActivityMainBinding
    private lateinit var adapter: AnimalListAdapter
    
	override fun onCreate(savedInstanceState: Bundle?) {
      	
      	binding = ActivityMainBinding.inflate(layoutInflater)
      	setContentView(binding.root)
        
        ...
        
        initRecyclerView(binding.rvAnimalList)
    }
    
    ...
    
    private fun initRecyclerView(recyclerView: RecyclerView) {
    	recyclerView.run {
        	adapter = adapter
            ...
        }
    }
}

위와 같이 하면 다음과 같이 No adapter attached; skipping layout 오류가 발생한다.

왜 그런지 initRecyclerView() 메소드의 adapter에 대입되는 값 adapter를 확인한 결과, AnimalListAdapter의 인스턴스가 아니라 RecyclerView의 getAdapter() 메소드였다.

@Nullable
public Adapter getAdapter() {
	return mAdapter;
}



해결 방법

AnimalListAdapter 인스턴스 변수명을 adapter가 아닌 다른 것으로 바꿔주면 된다.



후기

RecyclerView 인스턴스 변수명을 정할 때 의미를 명확히 알 수 있도록 명명하는 것이 중요하다는 것을 배웠다.

profile
안드로이드 개발자
post-custom-banner

0개의 댓글