adapter.itemClick = object : ItemAdapter.ItemClick {
override fun onClick(view: View, position: Int) {
val intent = Intent(this@MainActivity, DetailActivity::class.java)
intent.putExtra(Constants.ITEM_INDEX, position)
intent.putExtra(Constants.ITEM_OBJECT, dataList[position])
activityResultLauncher.launch(intent)
}
}
adapter.itemLongClick = object : ItemAdapter.ItemLongClick {
override fun onLongClick(view: View, position: Int) {
val intent = Intent(this@MainActivity, DetailActivity::class.java)
intent.putExtra(Constants.ITEM_INDEX, position)
intent.putExtra("title", ITEM_OBJECT,dataList[position].);
activityResultLauncher.launch(intent)
}
}
이슈
Unresolved reference : View
Unresolved reference : itemClick
Unresolved reference : itemLongClick
.
.
.
해결
ItemAdapter 클래스에 인터페이스 정의
interface ItemClick {
fun onClick(view: View, position: Int)
}
interface ItemLongClick {
fun onLongClick(view: View, position: Int)
}
var itemClick: ItemClick? = null
var itemLongClick: ItemLongClick? = null
MainActivity 에서 adapter 객체 초기화 후 인터페이스 할당
val adapter = ItemAdapter()
binding.recyclerView.adapter = adapter
// itemClick 및 itemLongClick에 인터페이스 객체 할당
adapter.itemClick = object : ItemAdapter.ItemClick {
override fun onClick(view: View, position: Int) {
// 클릭 이벤트 처리
}
}
adapter.itemLongClick = object : ItemAdapter.ItemLongClick {
override fun onLongClick(view: View, position: Int) {
// 롱 클릭 이벤트 처리
}
}
import android.view.View
itemClick, itemLongClick, View 오류 해결.
.
.
.
원인
Unresolved reference: itemClick
Unresolved reference: itemLongClick
adapter 객체에 itemClick 및 itemLongClick 프로퍼티가 정의되지 않았다. (프로퍼티 타입이 일치하지 않는 경우에도 해당 오류가 뜸)
ItemAdapter 클래스에서 ItemClick 및 ItemLongClick 인터페이스가 정의되어 있는지 확인하고, 이 인터페이스를 구현한 객체를 adapter에 할당했다.
View 를 사용하기 위해 해당 클래스를 import 했다.