когда я хочу начать новое действие с именем DetailActivity, мое приложение будет crash.
, это моя ошибка:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.notepad, PID: 4793
android.content.res.Resources$NotFoundException: String resource ID #0x0
at android.content.res.Resources.getText(Resources.java:244)
at androidx.appcompat.widget.ResourcesWrapper.getText(ResourcesWrapper.java:54)
at android.widget.TextView.setText(TextView.java:3888)
at com.example.notepad.databinding.ActivityDetailBindingImpl.executeBindings(ActivityDetailBindingImpl.java:115)
at androidx.databinding.ViewDataBinding.executeBindingsInternal(ViewDataBinding.java:473)
at androidx.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:445)
...
Я думаю, что это связано с setContentView
. Потому что, когда я использую обычную setContentView
, программа работает хорошо, но когда я использую DataBindingUtil.setContentView()
, мое приложение crashs.
это DetailActivity
:
import android.content.Context
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.databinding.DataBindingUtil
import com.example.notepad.databinding.ActivityDetailBinding
class DetailActivity : AppCompatActivity() {
private lateinit var binding: ActivityDetailBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_detail)
if(intent != null) {
binding.nameText.text = intent.getStringExtra(EXTRA_NAME)
binding.ageText.text = intent.getStringExtra(EXTRA_AGE)
}
}
и это activity_detail
:
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
>
<data>
<variable
name="person"
type="com.example.notepad.Person" />
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".DetailActivity">
<TextView
android:id="@+id/name_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{person.name}"/>
<TextView
android:id="@+id/age_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{person.age}"/>
</LinearLayout>
</layout>
это класс персонажа:
class Person(var name: String , var age: Int)
[обновить] мой файл ActivityDetailBindingImpl находится в java, пока я использую kolin. может проблема в этом.