-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
해결됨
DataBinding
23.04.08 11:49 작성 조회수 264
0
안녕하세요 질문이 있습니다!
주사위 관련 부분을 듣고 있는데 databinding 부분에서 에러가 발생해서 진행이 되지 않고 있습니다.
gradle에서 dataBinding을 추가해주고 activity_xml에서 Layout으로 전체 문장을 감싸는 부분부터 빨간 줄이 생겼습니다.
MainActivity에서도 'Private lateinit var binding : ActivityMainBinding' 이 문장을 임포트 하지 못하고 있는데 혹시 버전 차이로 진행을 못하는 건가요?
해결 방법이 있을까요ㅠㅠ
답변을 작성해보세요.
0
kimsehi1
질문자2023.04.08
<?xml version="1.0" encoding="utf-8"?>
<Layout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#1EBD6B"
tools:context=".MainActivity"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginTop="100dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:textColor="#000000"
android:textStyle="bold"
android:layout_margin="20dp"
android:gravity="center"
android:text="주사위 한방"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:weightSum="2">
<ImageView
android:id="@+id/dice1"
android:src="@drawable/dice_1"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_weight="1"/>
<ImageView
android:id="@+id/dice2"
android:src="@drawable/dice_1"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_weight="1"/>
</LinearLayout>
<Button
android:id="@+id/diceStartBtn"
android:text="인생 고고"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:layout_margin="50dp"
android:background="@color/black"/>
</LinearLayout>
</Layout>
kimsehi1
질문자2023.04.08
package com.example.inflearn_dice
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import androidx.databinding.DataBindingUtil
import kotlin.random.Random
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.diceStartBtn.setOnClickListenter{
Toast.makeText(this,"주사위 GO",Toast.LENGTH_LONG).show()
Log.d("MainActivity", Random.nextInt(1,6).toString())
Log.d("MainActivity", Random.nextInt(1,6).toString())
val number1 = Random.nextInt(1,6).toString()
val number2 = Random.nextInt(1,6).toString()
if(number1 == 1){
diceImage1.setImageResource(R.drawable.dice_1)
} else if(number1 == 2){
diceImage1.setImageResource(R.drawable.dice_2)
} else if(number1 == 3){
diceImage1.setImageResource(R.drawable.dice_3)
} else if(number1 == 4){
diceImage1.setImageResource(R.drawable.dice_4)
} else if(number1 == 5){
diceImage1.setImageResource(R.drawable.dice_5)
} else{
diceImage1.setImageResource(R.drawable.dice_6)
}
if(number2 == 1){
diceImage2.setImageResource(R.drawable.dice_1)
} else if(number2 == 2){
diceImage2.setImageResource(R.drawable.dice_2)
} else if(number2 == 3){
diceImage2.setImageResource(R.drawable.dice_3)
} else if(number2 == 4){
diceImage2.setImageResource(R.drawable.dice_4)
} else if(number2 == 5){
diceImage2.setImageResource(R.drawable.dice_5)
} else{
diceImage2.setImageResource(R.drawable.dice_6)
}
}
}
}
개복치개발자
지식공유자2023.04.08
그리고
위의 부분을 아래처럼 변경해주세요 <> 가 잘못들어간거 같아요
binding = DataBindingUtil.setContentView<>(this,R.layout.activity_main)
binding = DataBindingUtil.setContentView(this,R.layout.activity_main)
답변 1