setOnclickListener 事件不适用于 android 中的浮动操作按钮?

setOnclickListener event is not working for Floating action button in android?

这是此的 xml 代码.....这是带有回收器视图的约束布局

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab_add"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="44dp"
    android:layout_marginBottom="48dp"
    android:focusable="true"
    android:clickable="true"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    android:src="@drawable/ic_add"
    android:contentDescription="@string/add_book" />

Activity代码在这里

private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    binding = ActivityMainBinding.inflate(layoutInflater)
    val fab = binding.fabAdd

    fab.setOnClickListener {
        val intent = Intent(this,AddActivity::class.java)
        startActivity(intent)
    }
}

}

应该是这样的

您必须 setContentView 作为 view bindingroot 而不是 layout

private lateinit var binding: ActivityMainBinding

@Override
fun onCreate(savedInstanceState: Bundle) {
    super.onCreate(savedInstanceState)
    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)

    binding.fab_add.setOnClickListener {
       val intent = Intent(this,AddActivity::class.java)
       startActivity(intent)
    }  
}

尝试

private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = DataBindingUtil.setContentView(this, R.layout.activity_main)


    val fab = binding.fabAdd

    fab.setOnClickListener {
        val intent = Intent(this,AddActivity::class.java)
        startActivity(intent)
    }
}