databinding설정
일단 build.gradle(Module 블라블라)
android 괄호 안에 아래 코드 추가 및 sync
dataBinding {
enabled true
}
그리고 매인액티비티에 아래코드처럼 하면 binding을 사용할 수 있다!
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
}
예시
val diceImage1 = binding.dice1
val diceImage2 = binding.dice2
이런식으로 변수에 담아서 활용할 수 도 있고 바로 쓸 수도있음
예를들면 binding.dice1.setOnClickListener {}
kotlin 함수 Random + if + when
binding.diceStart.setOnClickListener{
Toast.makeText(this,"주사위 ㄱㄱ", Toast.LENGTH_LONG).show()
val num1 = Random.nextInt(1,7)
val num2 = Random.nextInt(1,7)
when (num1) {
1 -> {
diceImage1.setImageResource(R.drawable.dice_1)
}
2 -> {
diceImage1.setImageResource(R.drawable.dice_2)
}
3 -> {
diceImage1.setImageResource(R.drawable.dice_3)
}
4 -> {
diceImage1.setImageResource(R.drawable.dice_4)
}
5 -> {
diceImage1.setImageResource(R.drawable.dice_5)
}
6 -> {
diceImage1.setImageResource(R.drawable.dice_6)
}
}
if (num2 == 1) {
diceImage2.setImageResource(R.drawable.dice_1)
} else if (num2 == 2) {
diceImage2.setImageResource(R.drawable.dice_2)
} else if (num2 == 3) {
diceImage2.setImageResource(R.drawable.dice_3)
}else if (num2 == 4) {
diceImage2.setImageResource(R.drawable.dice_4)
}else if (num2 == 5) {
diceImage2.setImageResource(R.drawable.dice_5)
}else if (num2 == 6) {
diceImage2.setImageResource(R.drawable.dice_6)
}
}
이러면 버튼 누를때마다 주사위가 샥샥 바뀜
log 관련 참고사항!
Log.e("오류를 나타내는 로그", "블라블라") // 빨간색으로 나타남
Log.w("경고를 나타내는 로그", "블라블라")
Log.i("정보를 나타내는 로그", "블라블라")
Log.d("디버그를 나타내는 로그", "블라블라")
Log.v("상세를 나타내는 로그", "블라블라")
배고프다..
근데 뷰바인딩이랑 데이터바인딩의 차이는 뭐지?
1. 뷰바인딩의 속도가 더 빠릅니다.
2. 데이터바인딩은 <layout>태그를 사용하여 만든 레이아웃을 처리하고, TAG를 삽입한다.
3. 뷰바인딩은 양방향바인딩을 지원하지 않는다.
https://philosopher-chan.tistory.com/1307
1번은 ok
2번은 처음 강의 들을때 갑자기 layout을 전체에 씌워줘서 왜하는건가 싶었는데 이래서 하는거였다.
3번은 ?
배고파서 찾아볼 힘이 없음
직접 알아보시기 바랍니다.
'kotlin' 카테고리의 다른 글
[kotlin] recyclerView + shallowCopy & deepCopy (0) | 2022.07.20 |
---|---|
kotlin 기초 findViewById, intent, splashActivity, putExtra, setImageResource (0) | 2022.06.13 |