如何在 Android studio 中使用视图绑定为多个按钮创建 onClick 方法?

How to create onClick method for multiple buttons using View Binding in Android studio?

通过view.getId()

创建onClick很简单
public void buttonOnClick(View view)
{
 switch(view.getId())
 {
  case R.id.button1:
  // Code for button 1 click
  break;

  case R.id.button2:
  // Code for button 2 click
  break;

  case R.id.button3:
  // Code for button 3 click
  break;
 }
}

但是是否可以使用视图绑定来创建它,或者我也可以为每个视图实现侦听器?

P.S 视图绑定是指使用一种新的视图声明方式

private ResultProfileBinding binding;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    binding = ResultProfileBinding.inflate(getLayoutInflater());
    View view = binding.getRoot();
    setContentView(view);
}

您可以使用 Butterknife 库

检查这个库=https://github.com/JakeWharton/butterknife

TD LR 改为为每个视图实施侦听器

Android docs 此处您将看到视图绑定实际上所做的是为您的绑定布局创建 class。这意味着如果你有一个包含 3 个文本视图的布局,你的绑定 class 将有 3 个以它们的 ids

命名的属性
  • textview1
  • textview2
  • textview3

其中每一个都已转换为正确的类型 (textView)。基本上消除了执行上面 post 代码的需要,因为如果你考虑一下,你正在做的是获取视图的 id 然后你进行转换,但正如我所说的绑定 class 已经为您完成了所有工作。

但是,如果您要做的是在多个视图中实现相同的代码,那么我建议将共享代码抽象为一个单独的函数,并在视图点击侦听器上设置该函数。

binding.textview1.setOnClickListener { sharedFunction() }
binding.textview2.setOnClickListener { sharedFunction() }
binding.textview3.setOnClickListener { sharedFunction() }