inflearn logo
강의

Course

Instructor

[Intermediate] Friendly Introduction to JETPACK <Part 1> (Android Kotlin)

DataBinding and data class

에러

351

ssgodda1775

2 asked

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

DataBinding 과 data class 강의 듣고잇는중입니다

xml에서 버튼에 myClick을 연결시킨 부분부터 애뮬레이터에서 버튼을 누르면 애플리케이션이 자동종료됩니다.

코드를 똑같이 따라쳣는데 왜 이렇게 된건지모르겟습니다.

에러내용입니다

(코드내용 똑같다고 보면 될거같습니다.)

 

<?xml version="1.0" encoding="utf-8"?>
<layout
    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">

    <data>
<variable
    name="user"
    type="com.actual.jetpack_ex_databinding2.Person" />
    </data>

<LinearLayout

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text= "@{user.name}"
        android:textSize="50sp"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text= "@{Integer.toString(user.age)}"
        android:textSize="50sp"
        />

    <TextView
        android:textSize="100dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@{user.age > 30 ? `나이 많음` : `나이 적음`}"
        />

    <Button
        android:text = "btn"
        android:onClick="myClick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    

</LinearLayout>
</layout>

 

package com.actual.jetpack_ex_databinding2

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import androidx.databinding.DataBindingUtil
import com.actual.jetpack_ex_databinding2.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

    private lateinit var binding : ActivityMainBinding

    var testCount = 20

    override fun onCreate(savedInstanceState: Bundle?) {


        super.onCreate(savedInstanceState)
        binding = DataBindingUtil.setContentView(this, R.layout.activity_main )

       // binding.test.text= "바뀐 텍스트"

        val person = Person("개복치", 20)
        binding.user= person

       fun myClick(view : View) {
           Log.d("MainActivity", "onClick")
           testCount++

           val person = Person("개복치", testCount)
           binding.user = person
       }


    }
}

 

package com.actual.jetpack_ex_databinding2

data class Person (
    val name : String,
    val age : Int

)

FATAL EXCEPTION: main

Process: com.actual.jetpack_ex_databinding2, PID: 7731

java.lang.IllegalStateException: Could not find method myClick(View) in a parent or ancestor Context for android:onClick attribute defined on view class com.google.android.material.button.MaterialButton

at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:506)

at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:464)

at android.view.View.performClick(View.java:7659)

at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1213)

at android.view.View.performClickInternal(View.java:7636)

at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)

at android.view.View$PerformClick.run(View.java:30156)

at android.os.Handler.handleCallback(Handler.java:958)

at android.os.Handler.dispatchMessage(Handler.java:99)

at android.os.Looper.loopOnce(Looper.java:205)

at android.os.Looper.loop(Looper.java:294)

at android.app.ActivityThread.main(ActivityThread.java:8177)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)

 

그전까지는 잘 되는거로 보아 onClick="myClick" 부분이 문제인것같은데 잘 못찾겟습니다.

 

android kotlin jetpack

Answer 1

0

bokchi

강의 코드를 보시면 myClick이 onCreate 범위 밖에 있습니다.

괄호의 범위를 확인해보시겠어요?

 

image

0

ssgodda1775

감사합니다.

수정했더니 잘 작동합니다.

사소한 실수로 몇시간을 날렸네요.....

dataBinding 시 오류

0

66

2

Retrfit 에러

0

146

2

[Retrofit 간단한 예제 변경 + RecyclerView 추가] 에 databinding 추가해 보았습니다.

1

218

2

Navigation Data Transfer Safe Args 강의중에서

0

267

2

viewModel 초기화 관련 질문드려요

0

283

1

Fragment에서 ViewBinding과 DataBinding 초기화 차이가 궁금합니다.

0

282

1

최상단 변수 선언 관련하여 질문드려요

0

190

1

Retrofit + ViewModelScope + RecyclerView + Glide 강의중에서

0

321

2

Retrofit 간단한 예제 변경 강의중에서

0

302

2

LiveData 와 MutableLiveData 차이강의중에서

0

502

5

Activity/Fragment ViewModel 공유 10분35초경에 fragment 에 viewModel선언

0

221

1

안드로이드 테마 색상 오류

0

245

1

Map / SwitchMap - 2 강의 오류

0

386

1

ViewBinding 질문 있습니다.

2

386

2

fragment 이동시 data 초기화

0

391

1

CoroutineScope 질문

0

371

1

뷰모델 질문

0

308

1

바인딩 때 xml

0

289

1

코루틴과 workmanager 순서 정하기의 차이점

0

521

1

ViewModel 값

0

296

1

Retrofit 질문입니다.

0

491

1

Activity / Fragment 의 ViewMode 질문있습니다.

0

317

1

2강 질문이씁니다.

0

283

1

Json 형식 데이터 모델 설계 질문드립니다 :)

2

1518

1