Button b1 = (Button) findViewById(R.id.button1);
OnClickListener list1 = new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, Second.class));
}
};
b1.setOnClickListener(list1);
为什么我们不需要实例化或初始化传递给onClick的View v?它指的是什么对象?
答案 0 :(得分:3)
如果按下按钮<{p>},View v
实际上是Button b1
如果按此按钮,View v
将返回对象Button b1
答案 1 :(得分:0)
android将每个元素,即textfield,button等视为视图。此处视图v将返回您单击的按钮的对象,即按钮b1。
答案 2 :(得分:0)
b1.setOnClickListener(list1);
- 您的此代码会将list1
侦听器绑定到按钮b1
的onClick事件。
只要点击 - 在这种情况下 - 触摸,在按钮b1上,将调用onClick()
方法,该方法会发送视图的handle(v)
触发了它(在你的情况下 - 按钮b1 )。
因此,View v
将成为触发OnClickListener
的视图的处理方式。
答案 3 :(得分:0)
测试以下内容..
protected void onCreate(Bundle savedInstanceState)
{
Button b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListerner(this);
.....
.....
}
public void onClick(View v)
{
if(v == b1)
{
// do stuff
}
}
上面的代码和你的代码都是一样的。按下按钮时,按钮对象的引用将传递给onClick()。