inflearn logo
강의

講義

知識共有

ユン・ジェソンのKotlinベースのAndroidアプリ開発 Part1 - UI Programming

45強 RecyclerView

45. RecyclerView의 Adapter에서 viewBinding 문의

291

gwise

投稿した質問数 72

0

//ViewHolder 클래스
inner class ViewHolderClass(itemView: View) : RecyclerView.ViewHolder(itemView), View.OnClickListener {
//val rowImageView = itemView.findViewById<ImageView>(R.id.rowImageView)
//val rowTextView = itemView.findViewById<TextView>(R.id.rowTextView)
var rowView = itemView as RowBinding
val rowImageView = rowView.rowImageView
val rowTextView = rowView.rowTextView

override fun onClick(v: View?) {
binding.textView.text = data1[adapterPosition]
}
}

//항목 구성을 위해 사용할 ViewHolder 객체가 필요할 때 호출되는 메소드
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolderClass {
//val itemView = layoutInflater.inflate(R.layout.row, null)
val itemView = RowBinding.inflate(layoutInflater)
val view = itemView.root
val holder = ViewHolderClass(view)
view.setOnClickListener(holder)

return holder
}


viewBinding으로 Adapter를 변경했는데 앱이 강제 종료 됩니다. 에러 메시지 java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to com.example.recyclerview.databinding.RowBinding 소스 : https://github.com/pulmuone/RecyclerView

android kotlin

回答 3

0

ymyungs

시간이 많이 지나서 이게 도움이 되실지 모르겠습니다.

위에 코드와 많이 다른 부분은 없는 것 같고, viewBinding을 활용해 만들긴 했는데..

이게 맞는지는 모르겠으나 돌아가긴 합니다.

    inner class RecyclerAdapter : RecyclerView.Adapter<RecyclerAdapter.ViewHolderClass>() {
        private lateinit var rowBinding : RowBinding

        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolderClass {
            rowBinding = RowBinding.inflate(layoutInflater)

            val holder = ViewHolderClass(rowBinding)
            rowBinding.root.setOnClickListener(holder)

            return holder
        }

        // ... 2개 함수는 중략...

        // ViewHolder 클래스
        inner class ViewHolderClass(itemView: RowBinding) : RecyclerView.ViewHolder(rowBinding.root), View.OnClickListener {
            val rowImageView = itemView.rowImageView
            val rowTextView = itemView.rowTextView

            override fun onClick(v: View?) {
                binding.textView.text = data1[adapterPosition]
            }
        }
    }

 

위 코드 참고 부탁드립니다.

 

0

gwise

viewBinding 으로 했을때 어떻게 하는지 문의 했던 내용입니다.

0

softcampus

강좌에서는 var rowView = itemView as RowBinding 로 변환하는 코드를 작성하지 않았습니다. 강좌를 다시 확인해주시기 바랍니다.

예제 코드가 빌드가 않됩니다.

0

214

1

질문 있습니다.

0

310

1

41강 AutoCompleteTextView강의 영상 중 onItemClick 이벤트 관련 질문입니다.

0

371

2

part 2의 OnActivityResult 도 deprecated 되었는데 registerForActivityResult 에 대한 강의도 추가하실 생각이 있으신가요? ㅠ

0

356

1

dp의 유무에 따라 달라지나요?

0

242

1

app- java 하위 디렉토리가 왜 이렇게 나올까요?

0

194

1

overide 함수 매개변수 질문

0

508

2

MainActivity에서 id로 코드를 작성할 수 없는 문제

0

241

1

kotlin extensions 가 더이상 지원하지 않는다고 뷰 바인딩으로 마이그레이션 하라는 메시지

0

215

2

안녕하세요 해당 강의가 언제 촬영되었는지 알 수 있을까요?

0

278

1

listener2는 이해가 되는데 listener1이 이해가 잘 안됩니다.

0

277

1

avd 오류

0

263

1

AVD terminated 오류

0

305

1

강의 자료 다운로드 할 수 있나요?

0

349

0

안드로이드 스튜디오에서 예제프로젝트 불러오기

0

531

1

Kotlin-extension 이 폐지된 다음...

0

191

1

AVD 테스트에서 Emulator가 실행되지 않습니다.

0

223

1

자동완성

0

208

1

R 에 대한 질문입니다

0

344

2

text1 자동임포트 질문입니다.

1

348

2

TextInputLayout keeps stopping

0

308

2

android studio 강의를 들으면서 dependencies에 관하여 궁금해진게 있습니다

0

213

1

리스너 함수에서 when 사용 질문

0

166

1

자동완성 파라미터 질문

0

146

1