首页 > 解决方案 > android中的按钮视图

问题描述

当我在按钮上指定一个函数时,我有一个疑问,onClick为什么 View 被用作参数?当我们不指定该视图时会发生什么

例子:

public void ara(View button){
}

这里onClick按钮的功能:ara

谢谢

标签: androidandroid-studioandroid-layoutandroid-fragmentsandroid-intent

解决方案


View 是我相信的一个参数,因为它是您说哪个视图启动回调的方式。

单击视图时要调用的回调的接口定义。ViewOnClickListener

你像这样设置它:

final Button button = findViewById(R.id.button_id);
         button.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 // View v is the button in this case.
                 // Here you add what to do when this callback is initiated.
             }
         });
     }

在这段代码中,请注意:

  1. 您应该首先了解按钮只是另一个视图。
  2. 现在您正在声明您的 Button 以匹配您在布局中描述的 Button。这是通过final Button button = findViewById(R.id.button_id);记下查找View ById 来完成的。
  3. 按钮的全部意义在于,当您按下它时,它应该做一些事情。这就是所谓的回调。这就是你这样做的原因button.setOnClickListener(来自View.setOnClickListener)。您基本上是在说 Button 是正在说话的视图,并且View.OnClickListener应该听听该视图要说什么。
  4. 现在我们来到最后一点,为什么会有View v in onClick(View v)。正在说话的观点将是View v。为什么这很有用?这样您就可以多次引用同一个侦听器(回调)。在这种情况下,我们在执行时即时进行了回调new View.OnClickListener()。但如果我们不这样做呢?如果多个按钮引用同一个监听器怎么办?这是View v变得重要的时候。这样我们就可以做类似的事情,v.getId()以便我们知道哪个视图在说话(启动回调)。此函数将返回R.id调用它的任何视图的 id。在这种情况下,我们声明了一个按钮,R.id.button_id这样我们就可以知道按钮调用了它。

推荐阅读