2017-07-15 71 views
-1

由于Java中不允许创建接口的对象。 通过按钮事件创建代码一起去,我通过这个决议:Android视图。 onClickListener是一个接口。 JAVA如何允许创建它的对象?

 View. OnClickListener ocl=new View. OnClickListener(); 

按照Android文档onClickListener是一个接口,那么我们如何创造它的对象。对象创建的接口是不允许的,但关键字new显然是这样做的。这怎么可能? 请原谅我的错误,我是Android开发新手。

+0

选中此项 - http://blog.cubeactive.com/onclicklistener-android-tutorial/ –

+0

实际上,我们创建了一个实现OnClickListener的子类的对象并覆盖了它的方法。 –

回答

0

你不知道。系统确实如此。您只需提供接口的实现。

+0

按照JAVA,您不能创建接口的对象。那么这怎么会发生/允许 - 新视图。 OnClickListener()[创建对象] – sociopath

0

如果你想写一个ClickListener使用几个视图的单击事件中,试试这个:

View.OnClickListener onClick = new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      // write your code here 
     } 
    }; 

现在,您可以设置onClick到您的视图的ClickListener

btn.setOnClickListener(onclick); 
0

每当接口是需要的,你需要提供这个接口的实现。这意味着需要接口的类不关心实现的类,只需知道它可以以特定的方式使用它所接收的实例,并且实例可以实现通过其实现所要求的内容。

然后,您有两个选项创建一个实现View.OnClickListener接口的类或实例化一个匿名类。

选项1:

public class ClickListenerImpl implements View.OnClickListener 
{ 
    @Override 
    public void onClick(View view) { /* logic */ } 
} 

然后

View.OnClickListener ocl = new ClickListenerImpl(); 

选项2:

View.OnClickListener ocl = new View.OnClickListener() 
{ 
    @Override 
    public void onClick(View view) { /* logic */ } 
}; 
1

在简单的话..

您创建的实例为anonymous类,该类在方括号中实现了View.OnClickListener

相关问题