我是编程新手,我在android中有非常基础的知识。正如我在Java中了解到的那样,无法实例化接口,并且这new
是Java中指示创建实例的关键字。我在Android中遇到以下代码:
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
findViewById(R.id.button1).setOnClickListener(mButton1_OnClickListener);
}
//On click listener for button1
final OnClickListener mButton1_OnClickListener = new OnClickListener() {
public void onClick(final View v) {
//Inform the user the button has been clicked
Toast.makeText(this, "Button1 clicked.", Toast.LENGTH_SHORT).show();
}
};
}
上面的代码OnClickListener
是一个公共接口,并且onClick(final View v)
是一个抽象方法,这是我的问题:OnClickListener
作为一个接口,如何才能new
在上面的示例中使用关键字创建它的实例?
经过长期的研究,可以弄清匿名类。基本上Anonymous代表NO NAME,因此没有任何名称的类就是Anonymous类。前任:
final OnClickListener mButton1_OnClickListener = new OnClickListener() {
public void onClick(final View v) {
//Inform the user the button has been clicked
Toast.makeText(this, "Button1 clicked.", Toast.LENGTH_SHORT).show();
}
};
让我们以上述代码为例,它是一个匿名实现,其中mButton1_OnClickListener是匿名类的对象,而此匿名类实现了OnClickListener接口。Similer示例-匿名类如何使用“扩展”或“实现”?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句