android{
...
//AndroidStudio 3.6 ~ 4.0
// viewBinding{
// enabled = true
// }
// AndroidStudio 4.0(동물 이름으로 된 코드네임 버전) ~
buildFeatures{
viewBinding true
}
}
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.example.lab_view.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
// activity_main.xml 바인딩
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//inflate를 통해 xml에 있는 뷰를 객체화 시켜준다.
binding = ActivityMainBinding.inflate(layoutInflater)
// val view = binding.root
// setContentView(view)
setContentView(binding.root)
}
}
데이터 원본과 어댑터뷰(ListView, GridView) 사이의 중계 역할을 한다.
어댑터의 종류
어댑터가 데이터 항목을 표시하는 방법
AdaptereView.OnItemClickListener : 어댑터뷰들은 온클릭리스너를 다 가지고 있다. (parent, view, position ,id 중에 필요한 것만 쓰면 된다.)
//수직 리스트
recyclerView.layoutManager = LinearLayoutManager(this)
//2열 그리드
recyclerView.layoutManager = GridLayoutManager(this, 2)
// 이외에도, StaggeredGridLayoutManager가 있다.오늘 드디어 뷰바인딩과, 리사이클러뷰를 배웠다. 입문 팀 프로젝트 떄, 뷰바인딩에 대한 글을 많이 봤는데, findViewById보다 간편해 보여서 눈길이 갔었다. 오늘 제대로 이론을 통해 배우니까 확실히 더 좋다는 것이 느껴진다.
어댑터 뷰도 오며가며 많이 들었었는데, 일단 어댑터뷰 보다는 리사이클러뷰의 활용이 압도적으로 높다고 해서 그냥 이론적으로 보는 것으로 만족하기로 했다. 그리고 리스트뷰랑 그리드뷰는 맘만 먹으면 그렇게 어렵지 않게 적용할 수 있을 것 같다.
일단은 선택과 집중을 위해 내일 리사이클러뷰에 대한 실습을 먼저 진행해야겠다.
마침 수준별 학습 과제로 리사이클러뷰로 기존의 클론코딩을 개선하는 과제가 주어졌는데, 실습과 과제를 먼저 한 다음 프레그먼트와 다이얼로그,알림 수업을 듣는 것이 좋을 것 같다. 그래도 벌써 오늘이 수요일이라서 목요일 금요일 이틀 남았는데.. 오전 중에 실습을 끝내고 오후에 프레그먼트 수업을 들을 수 있었으면 좋겠다. 그럼 금요일에 정리하고, 금요일 오후에 다이얼로그, 알림을 듣고 금요일 저녁에 3가지 이론 정리를 하고. 다음주 월요일부터는 개인과제를 수행할 수 있도록 파이팅!