setOnClickListener Android

时间:2013-02-08 07:17:27

标签: java android mobile methods

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?它指的是什么对象?

4 个答案:

答案 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()。