android - android中的按钮视图
问题描述
当我在按钮上指定一个函数时,我有一个疑问,onClick
为什么 View 被用作参数?当我们不指定该视图时会发生什么
例子:
public void ara(View button){
}
这里onClick
按钮的功能:ara
谢谢
解决方案
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.
}
});
}
在这段代码中,请注意:
- 您应该首先了解按钮只是另一个视图。
- 现在您正在声明您的 Button 以匹配您在布局中描述的 Button。这是通过
final Button button = findViewById(R.id.button_id);
记下查找View ById 来完成的。 - 按钮的全部意义在于,当您按下它时,它应该做一些事情。这就是所谓的回调。这就是你这样做的原因
button.setOnClickListener
(来自View.setOnClickListener
)。您基本上是在说 Button 是正在说话的视图,并且View.OnClickListener
应该听听该视图要说什么。 - 现在我们来到最后一点,为什么会有View v in
onClick(View v)
。正在说话的观点将是View v
。为什么这很有用?这样您就可以多次引用同一个侦听器(回调)。在这种情况下,我们在执行时即时进行了回调new View.OnClickListener()
。但如果我们不这样做呢?如果多个按钮引用同一个监听器怎么办?这是View v
变得重要的时候。这样我们就可以做类似的事情,v.getId()
以便我们知道哪个视图在说话(启动回调)。此函数将返回R.id
调用它的任何视图的 id。在这种情况下,我们声明了一个按钮,R.id.button_id
这样我们就可以知道按钮调用了它。
推荐阅读
- python - 汇总三列,在不同条件下汇总,然后加入
- javascript - 按数组中第一个元素排序
- android - setTextAlignment() & setGravity() 不能动态工作
- java - 当我点击推送通知时,特定活动未打开(需要真正的帮助)
- java - isAbstract() 修饰符返回不正确的结果 - 为什么?
- amazon-web-services - 从 AWS API-Gateway 找出 lambda 名称
- swift - 如何快速删除 UIMenuController 项目?
- php - Laravel 关系:获取产品的评论和相关用户
- vb.net - RecieveBufferSize OutOfRangeException (.NET)
- cakephp - 在 PHP 3.6 中使用 Cake 时的站点加载问题