我是编程新手,我在android中有非常基础的知识。正如我在Java中了解到的那样,无法实例化接口(interface),并且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
是一个公共(public)接口(interface),而onClick(final View v)
是一个抽象方法,这是我的问题:OnClickListener
是一个接口(interface),在上面的示例中如何使用new
关键字创建它的实例? 最佳答案
在这里,您没有实例化由Anonymous内部类执行的接口(interface)。您没有在创建接口(interface)的对象。您正在为Anonymous类创建此对象,而该类将在下一步在{Anonymous内部类}中创建。想知道更多细节,您必须通过Anonymous内部类。
在以下链接中查看:
http://c2.com/cgi/wiki?AnonymousInnerClass
http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html
关于java - Android中的OnClickListener界面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20780261/