작성
·
278
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" 부분이 문제인것같은데 잘 못찾겟습니다.
감사합니다.
수정했더니 잘 작동합니다.
사소한 실수로 몇시간을 날렸네요.....