我有,当我指定一个疑问onClick
按钮功能有何看法作为参数? 而当我们不指定视图会发生什么
例:
public void ara(View button){
}
这里onClick
按钮的功能: ara
谢谢
我有,当我指定一个疑问onClick
按钮功能有何看法作为参数? 而当我们不指定视图会发生什么
例:
public void ara(View button){
}
这里onClick
按钮的功能: ara
谢谢
View
被用作一个参数onClick()
方法,因为它是在该视图OnClickListener
附着到。
这是在多个方面,比如如果视图是一个非常有用TextView
,并要更新它的文本被点击视图时。
其他常见的用途可能是:
设置视图的可视性
经过查看到ObjectAnimator
点击时动画
撷取Context
通过view.getContext()
总体而言,它只是让你无论是在视图中执行修改的一个必要的参数OnClickListener
属于,或供您使用的View
用于其他目的或计算。
此外,如果您不包括在查看onClick()
方法,那么你的代码将无法被编译。 这是因为OnClickListener
是一个接口,默认情况下,在接口内的方法没有方法体。
相反,它是由你来覆盖的方法,并给它适当的方法体。 不过,既然你要替换的方法,这也意味着你必须有相同的方法名,同样的方法改性剂,和同样的方法的参数,以正确反映你覆盖方法。
如果不这样做就意味着所需的接口方法没有被覆盖,因此您的代码将无法编译。
视图是一个参数,我相信,因为这是你说哪种观点发起回调的方式。
单击视图时要调用回调接口定义。 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.
}
});
}
在这段代码令注意:
final Button button = findViewById(R.id.button_id);
注意到查找视图 ById的。 button.setOnClickListener
(这是从View.setOnClickListener
)。 你基本上是说,巴顿是,现在在谈论的观点,而且View.OnClickListener
应该听听这个观点的话。 onClick(View v)
这是讲的观点将是View v
。 这是为什么有用吗? 这样,您可以参考同一个侦听器(回调)多次。 在这种情况下,我们提出对飞回调的时候我们做了new View.OnClickListener()
但是,如果我们没有? 如果有多个按钮,引用什么相同的听众? 这是当View v
变得非常重要。 正是因此,我们可以这样做v.getId()
所以我们知道哪些观点来说(开始回调)。 该函数将返回的ID R.id
两者的观点的说法。 在这种情况下,我们宣布一个按钮R.id.button_id
,所以这是我们如何知道按钮说法。 因为同样的方法可以用于多种视图,那么你需要知道哪一个是发射事件。
public void ara(View button) {
switch (button.getId() {
...
}
}
正如你可以在文档看: 响应单击事件。
Button button = (Button) findViewById(R.id.button_send);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Do something in response to button click
}
});
您在android声明的方法:onclick属性必须完全有签名,如上图所示。 具体而言,该方法必须:
是公开的
返回void
定义视图作为其唯一的参数(这将是被点击查看)。