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 binding
的 root
而不是 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)
}
}
这是此的 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 binding
的 root
而不是 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)
}
}