(Android Studio Kotlin) 함수가 DataBinding xml에 표시되지 않는 경우

MVVM – DataBinding 항목에 onClick 함수를 넣으려고 하는데 작동하지 않습니다.

함수를 찾을 수 없기 때문에 빨간색 선이 나타납니다.

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

    <data>

        <variable
            name="viewModel"
            type="com.example.databindingtest.JoinActivity" />
    </data>

    <androidx.constraintlayout.widget.ConstraintLayout xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".JoinActivity">

        <Button
            android:id="@+id/testButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="@{()->viewModel.goToMainActivity()}"
            android:text="test"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>

</layout>


함수가 DataBinding xml에 표시되지 않는 경우 관련 대표 이미지

내가 사용한 줄 알았는데 입력 이름 및 유형과 마찬가지로 멋지게 마무리됩니다.

class JoinActivity : AppCompatActivity() {

    private lateinit var binding  : ActivityJoinBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding  = ActivityJoinBinding.inflate(layoutInflater)
        setContentView(binding.root)
        
    }

    private fun goToMainActivity() {
        startActivity(MainActivity.getIntent(this))
    }
}

분명히 기능은 괜찮습니다.

몇 가지 예를 찾아보세요

차이를 발견

그들 중 어느 것도 개인적인 것이 아닙니다.

비공개 삭제 후 빨간 줄이 사라집니다.


함수가 DataBinding xml에 표시되지 않는 경우 관련 이미지


함수가 DataBinding xml에 표시되지 않는 경우 관련 이미지

나는 보호대로 시도했지만 작동하지 않았습니다.


함수가 DataBinding xml에 표시되지 않는 경우 관련 이미지

나는 그것을 공개했다. 데이터 바인딩을 사용하려면 함수가 공개되어야 합니다. 액세스 기능넌 할 수 있으니까.

(kotlin은 기본적으로 public이며 생략 가능)


함수가 DataBinding xml에 표시되지 않는 경우 관련 이미지