2016-09-23 70 views
-3

我是一名android初学者,我有一些java知识,但我遇到了一些android代码的麻烦。在Android中使用匿名类

在java中,我们可以使用匿名类来覆盖接口的方法。

我遇到了以下情况。

MyButton.setOnClickListener(New Button.OnClickListener{ 
    @override 
    public void onClick(View view){ 
     //some code 
    } 
}); 

我习惯使用匿名类像这样,

Interface myInterface = new Interface(){ 
} 

我不能找出只有新其次是接口名字的意思是,在方法内部。

+0

该方法接受一个实现OnClickListener接口的类。你会像平常一样对待这个匿名类。 – Michael

+1

@Jhon的回答是正确的。我也会推荐这个关于匿名类的好书:https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html –

回答

2

这是一个没有一个变量名

MyButton.setOnClickListener(new Button.OnClickListener{ 
    @override 
    public void onClick(View view){ 
     //some code 
    } 
}); 

一个匿名类是一样的

Button.OnClickListener listener = new Button.OnClickListener{ 
    @override 
    public void onClick(View view){ 
     //some code 
    } 
}); 

MyButton.setOnClickListener(listener);