inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)

DataBinding

해결된 질문

347

kimsehi1

작성한 질문수 2

0

안녕하세요 질문이 있습니다!

주사위 관련 부분을 듣고 있는데 databinding 부분에서 에러가 발생해서 진행이 되지 않고 있습니다.

gradle에서 dataBinding을 추가해주고 activity_xml에서 Layout으로 전체 문장을 감싸는 부분부터 빨간 줄이 생겼습니다.

MainActivity에서도 'Private lateinit var binding : ActivityMainBinding' 이 문장을 임포트 하지 못하고 있는데 혹시 버전 차이로 진행을 못하는 건가요?

해결 방법이 있을까요ㅠㅠ

android kotlin firebase

답변 1

0

개복치개발자

안녕하세요

xml 부분과 activity 코드를 전체 복사해서 공유해주시겠어요?

 

0

kimsehi1

<?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>

0

kimsehi1

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)
            }

        }

    }
}

0

개복치개발자

혹시 kimsehi1 님 화면에서

빨간불이 나오는부분도 스크린샷으로 찍어주시겠어요?

0

개복치개발자

우선은 xml의
<Layout> 을 <layout> 소문자로 변경해주세요 :)

0

개복치개발자

그리고

위의 부분을 아래처럼 변경해주세요 <> 가 잘못들어간거 같아요

binding = DataBindingUtil.setContentView<>(this,R.layout.activity_main)
binding = DataBindingUtil.setContentView(this,R.layout.activity_main)

1

kimsehi1

말씀하신 거 적용하니 오류가 해결됐습니다! 감사합니다.

주사위앱 소개 및 레이아웃 설정 문제

0

61

2

안드로이드 에뮬레이터가 실행이 안 되요...ㅠ

0

109

2

30 강 소스 좀 올려 주십시요

0

82

2

onBackPressed 함수가 동영상 하고 다르게 동작합니다.

0

92

2

ListView 초기 실행 안됩니다.

0

97

2

코딩을 완료하고난후 앱 실행시 자동 종료

0

73

2

datavinding에서 오류가 납니다.

0

54

1

안드로이드 스튜디오 버전 차이로 초기 empyt activity 선택하면 안됩니다.

0

117

2

context의 구별에 대하여

0

71

2

"프롤로그에서 ..." 오류 관련해 직전 질문에 대한 추가 질문입니다.

0

71

2

"프롤로그에서 콘텐츠가 허용되지 않습니다." 오류

0

161

3

해결완료

1

188

2

databinding 설정후 run하면 에러(해결)

0

226

2

databinding 설정 이후 실행시 에러

0

274

4

안드로이드 입문하는 사람입니다.

0

72

1

Firebase uid

0

79

3

activity_main 화면 다름

0

117

2

강의화면과 다른데 맞게진행되는것인가요...????

0

108

2

파이어베이스 질문

0

76

2

ActivityMainBinding에 오류가 납니다

0

136

2

선생님 onBackPressed 작동이 안되는거 같습니다

0

121

2

>app>res>layout 이 존재하지 않습니다.

0

120

2

안드로이드 스튜디오 미어캣 버전 사용 한글 깨짐

0

754

2

안드로이드 스튜디오 오류 발생 시 대처 방법은 요?

0

291

2