2013-02-22 159 views
-4

为什么我们在setOnClickListener方法中传递这些参数?Android按钮详细信息

Plz详细解释?

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 
    } 
});  
+1

原因是因为API需要这些参数。你可以看看文档。详细解释 – Blackbelt 2013-02-22 11:28:02

+0

你知道callBack接口的实现概念吗?检查[this](http://www.javaworld.com/javatips/jw-javatip10.html) – 2013-02-22 11:28:12

回答

1

button.setOnClickListener它实际上创建了一个匿名内部类,它实现了OnClickListener.一个匿名类在单个简洁表达式中使用new运算符进行定义和实例化。它用于创建简单的委托回调对象。这些匿名内部类可以访问封闭外部类的静态变量和实例变量。请致电link

+0

为什么我们将视图对象传递给onCLick方法? – 2013-02-22 17:15:36

1

其实这些都不是参数,如果你对Java很熟悉,你可能听说过Anonymous Inner Classes。所以你可以通过实施onClickListener来实现你所需要的。

将此作为参数button.setOnClickListener(this);传入您的代码中,并执行OverrideonClick方法。

+1

为什么这些不是参数? – Blackbelt 2013-02-22 11:31:49

+0

那些是匿名的内部类实现@blackbelt – 2013-02-22 11:34:16

+0

所以你不能将一个类作为参数传递给一个方法? – Blackbelt 2013-02-22 11:39:41