본문 바로가기
반응형

ViewHolder3

ArrayIndexOutOfBoundsException과 ViewHolder의 getAdapterPosition사용 RecyclerView를 이용해서, list상의 아이템 중 하나를 유저가 클릭한 경우, 해당 View의 position을 알아오기 위해, ViewHolder에서 getAdapterPosition을 사용하는 경우가 있습니다. 이런 경우에 ArrayIndexOutOfBoundsException이 발생하는 경우가 있는데요. 오늘은 이것의 원인과 대응 방법을 정리해 보도록 하겠습니다. 1. ArrayIndexOutOfBoundsException의 원인 ViewHolder에서 getAdapterPostion()메소드를 호출 한 경우, 디폴트 값은 "RecyclerView.NO_POSITION"인데요. 이 값이 바로 "-1"입니다. getAdapterPosition메소드는, 아이템이 있을 경우에만 해당하는 posi.. 2019. 10. 18.
notifyDataSetChanged 실행시에 깜박이는 현상 해결 안드로이드의 리스트뷰는 전부 RecyclerView로 한다고 해도 될 정도로,RecyclerView는 정말 많이 사용됩니다. RecyclerView를 사용하다가 때로는, intialize된 후에 각 아이템의 데이터가 수정되어서, 다시 notifyDataSetChanged()를 해줘야 하는 경우가 생깁니다. 보통은 한번만 해주면 되는 notifyDataSetChanged()를 두번 혹은 그 이상 해야되는 경우가 있는 것인데요.이렇게 하면 깜박임 현상이 발생하는 것을 볼 수 있습니다. 오늘은, 이 문제를 해결 하려면 어떻게 해야 하는지 정리해보겠습니다. 참고로, 이글에서는 RecyclerView의 구현과 기본적인 내용에 대해서는 생략합니다.RecyclerView의 기본적인 내용은 아래 링크를 참조해 주세요... 2017. 7. 2.
RecyclerView 로 listview 정복 Part.2 #리스트 아이템 클릭 이전글에서 RecyclerView로 리스트를 만드는 것에 대해서 정리해보았었는데요. 오늘은 만든 리스트를 유저가 터치할 수 있고, 그에 대해 간단하게 토스트팝업을 띄우는 것에 대해 정리해보겠습니다. 참고로 리스트뷰 만드는 방법에 대해서는 아래 링크에 정리되어 있습니다~. >> RecyclerView 로 listview 정복 Part1 1. 리스트 한줄 클릭시 반응하기 먼저 개발할 시나리오를 정리해보면 다음과 같습니다. 리스트에 있는 여러개의 줄중 하나의 줄 전체를 유저가 클릭하면, 터치한 줄의 데이터를 받아와서, 토스트 팝업을 띄운다. 그럼 아래에서 구현하면서 정리해보겠습니다. 1-1. 유저가 터치하는 것을 누가 알까? 유저가 터치했는지 어떻게 알수있을까요? 유저는 뷰를 터치한 것이고, 뷰는 뷰홀더에 있.. 2016. 12. 25.