Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
});
这个v和button有什么关系吗?可以相互转化吗?
v就是你点击的button,他俩是一个对象
但是我在点击事件之外使用button来代替v行吗??
v 可以强转成Button 它们是同一个Button
V指的就是你的button
我觉的上边的回答太粗糙了!
你说的 v 其实是 onClick 方法的入参,建议你可以看Android源码,不必看太多,了解这个Onclick事件的运行机制就可以了。还是回归主题吧,你应该注意到这个 v 是View类,在android中View类是所有可见组件的父类或间接父类(可以是按钮、输入框...),而setOnclick...就好像一个媒婆,作用就是给xxx(xxx.setOnClickLi...)和 v 绑定,你给谁添加监听,v 就可以是谁。
举个例子
OnClickListener myListener = new OnClickListener() {
@Override
public void onClick(View v) {
}
};
有这么个OnClickListener,现在你到处去用
button1.setOnclickListener(myListener);
textview1.setOnclickListener(myListener);
imageview1.setOnclickListener(myListener);
.....
那么你点击它们时都会响应,v 可以是它们中任意一个,但是我们要区分不同控件的不同响应,在onclick(View v)方法中用switch(v.getId()){
case ....}来区分不同控件,就可以响应不同的点击。