MainActivityBinding not found

DataBindingを使う時に下記のように書いたんですけど

//MainActivity.kt内
class MainActivity : AppCompatActivity() {

    private lateinit var model: TaskViewModel

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        var binding:ActivityMainBinding =
            DataBindingUtil.setContentView(this, R.layout.content_main)
  }
}

まずはDataBindingUtilが見つからない。

これは、build.gradleに下記を書いてないからでした。

android{ 
dataBinding{
enabled = true
}
}

これねー、Room+LiveData+ViewModelでやるときは、この

dataBinding enabled =true

いらないんですよ。なので、ちょっとした落とし穴ですね。

んで、本題の

MainActivityBinding not found

ですが、この一文の中にすでに答えがあります。

var binding:ActivityMainBinding =
            DataBindingUtil.setContentView(this, R.layout.content_main)

Bindingの型はレイアウトファイルの名称に依存するのです。

つまり、この場合は、レイアウトファイルがcontent_mainという名前なので、

var binding:ContentMainBinding =
            DataBindingUtil.setContentView(this, R.layout.content_main)

ってすると、動きます。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です