[개발](28)
-
Android - ViewType(뷰타입)
# 개념- 하나의 RecyclerView 안에 여러 Type의 viewHolder가 섞여있는 경우(광고 등) # 사용 방법1) 표시할 아이템들의 데이터 모델을 정의(보통 sealed class로 정의)2) getItemViewType(int position) 메서드를 오버라이드 - 각 아이템의 위치에 따라 해당 아이템의 뷰 타입 반환3) onCreateViewHolder(ViewGroup parent, int viewType) 메서드를 오버라이드 - 뷰 타입에 맞는 ViewHolder 생성4) onBindViewHolder(RecyclerView.ViewHolder, int position) 메서드를 오버라이드 - ViewHolder에 데이터 바인딩5) 각 뷰 타입에 해당하는 ViewHolder 클래스를..
2024.07.18 -
Android - ViewPager2 / TabLayout
# ViewPager2- 화면 슬라이드 기능 구현 시 사용- 다양한 페이지 전환을 제공- Fragment, View 등 다양한 페이지 간 전환 제공- View 사용 시 => RecyclerView.Adapter(View)- Fragment 사용 시 => FragmentStateAdapter(Fragment) # TabLayout- 상단에 탭을 표시하고 각 탬을 누를 때 ViewPager2의 페이지를 전환할 수 있는 인터페이스 제공 # 사용방법1) gradle에 추가implementation 'androidx.viewpager2:viewpager2:x.x.x' //x.x.x 최신 버전implementation 'com.google.android.material:material:x.x.x' //x.x.x..
2024.07.18 -
Android - RecyclerView에서의 ListAdapter 활용
# RecyclerView.Adapter의 단점- item Delete할 때 notifyItemRemoved(position)을 반복하다 보면 오류가 자주 발생함 (내가 position 1에 있는 아이템을 삭제하기 직전에 다른 사람이 같은 아이템을 삭제해버려서 내가 position 2에 있던 아이템을 삭제하게 되는 등)java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 0(offset:0).state:4 at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:3382)- position 명시가 ..
2024.07.18 -
Android - RecyclerView에서 클릭 이벤트를 전달하기
### RecyclerView에서 클릭 이벤트를 전달하기 ### #1. 인터페이스 방식#2. 람다 방식 # 인터페이스(Interface) 방식- 클래스가 구현해야 하는 메서드들의 집합을 정의하는 툴- 구현을 포함하지 않고 어떤 동작을 해야 하는지 명시만 함- 여러 클래스에서 공통됭 동작을 강제하기 위해 사용- 구현할 메서드를 명시해 클래스가 특정 기능을 반드시 구현하게 함- 재사용성이 좋음 / 코드의 유연성과 확장성 향상// 인터페이스 구현interface OnItemClickListener { fun onItemClick(position: Int)}class MyAdapter(private val itemList: List) : RecyclerView.Adapter() { val it..
2024.07.18 -
240717_TIL
https://skycat1127.tistory.com/129 Android - 알림(Notification)# 개념- 앱의 UI와 별도로 사용자에게 앱과 관련된 정보를 보여주는 기능 # 알림 채널- Android 8.0 이상부터는 알림을 만들기 전에 알림 채널부터 만들어야 함- 알림 채널은 알림을 그룹화해 알림skycat1127.tistory.comhttps://skycat1127.tistory.com/128 Android - 다이얼로그(Dialog)# 개념- 사용자에게 결정을 내리거나 추가 정보를 입력하라는 메시지를 표시하는 작은 창- 유저가 다음으로 계속 진행하기 전에 조치를 취해야 하는 모달 이벤트에 사용 # 구조- Dialog 클래스를skycat1127.tistory.com 걱정 모두 byeby..
2024.07.17 -
Android - 알림(Notification)
# 개념- 앱의 UI와 별도로 사용자에게 앱과 관련된 정보를 보여주는 기능 # 알림 채널- Android 8.0 이상부터는 알림을 만들기 전에 알림 채널부터 만들어야 함- 알림 채널은 알림을 그룹화해 알림 활성화 / 알림 방식 변경 등을 할 수 있음private val myNotificationID = 1private val channelID = "default"// 알림 채널 생성 메서드 구현private fun createNotificationChannel() { // Android 8.0 이상일 때 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // Android 8.0 val channel = NotificationChannel(..
2024.07.17