这是响应单击View对象(例如单击按钮)的代码:
final OnClickListener exampleListener = new OnClickListener()
{
public void onClick(View arg0) {
//Code here that does something upon click event.
}
};
Button exampleButton = (Button)this.findViewById(R.id.firstButton);
exampleButton.setOnClickListener(exampleListener);
我不懂代码。这段代码是否创建了一个名为onClick的重写方法,该方法即时属于父OnClickListener类?
以下代码是否等同于上面的代码?:
final OnClickListener exampleListener = OnClickListener.onClick()
{
public void onClick(View arg0) {
//Code here that does something upon click event.};
}
答案 0 :(得分:2)
第一个代码实际上做的是声明并实例化一个实现OnClickListener的类。这称为Anonymous Class。
第二个代码不一样,不起作用,我建议你尽快忘记它。
答案 1 :(得分:1)
您应该阅读Anonymous classes。
OnClickListener
是一个界面。在代码中,您要定义一个类并同时创建一个新对象。
对于你的第二个问题,答案是否定的。它们不等同,因为'OnClickListener'是一个接口,您无法在接口中定义单个方法(即使接口只有一个方法)。
更清楚的是,这与Eclipse没有任何关系。
如果您对此感兴趣,您正在做的是创建call back object并将其注册为listener