1,内部匿名类
在 java 中,内部匿名类就是没有名字的内部类。注意,内部匿名类有两个关键词,一个内部,一个是没有名字。其目的是为了简化代码的书写。使用内部匿名类主要的目的是为了简化代码的书写。
2,android 中监听器的实现
在平时写代码中,我们在使用按钮等控件的时候,经常会使用内部匿名类。这里我们以为 Button 为例子,代码如下:
mTrueButton = (Button) findViewById(R.id.true_button);
mTrueButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
do(true);
}
});
可以看到,setOnClickLisener 中就使用了一个内部匿名类,并实现了 OnClickListener 这个接口中唯一的方法。我们也可以具体定义一个类,并实现 OnClickListener 接口,然后注册给 setOnClickLisener ,显然内部匿名类简化了代码。下面是 OnClickListener 这个接口,可以看到,android 中这个接口只有一个函数需要实现。
/**
* Interface definition for a callback to be invoked when a view is clicked.
*/
public interface OnClickListener {
/**
* Called when a view has been clicked.
*
* @param v The view that was clicked.
*/
void onClick(View v);
}