Android视图。 onClickListener是一个接口。 JAVA如何允许创建其对象?

时间:2017-07-15 12:50:47

标签: java android interface onclicklistener

由于java中不允许创建接口。 通过按钮事件创建代码,我通过了这个:

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

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

4 个答案:

答案 0 :(得分:1)

简单来说......

您创建的实例是anonymous类,在括号中实现View.OnClickListener

答案 1 :(得分:0)

你没有。该系统。您只需提供界面的实现。

答案 2 :(得分:0)

如果您想编写一个public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "DefaultLocalized", url: "{language}/{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional, language = "en-US" } ); } 用于多个视图的点击事件,请尝试以下操作:

ClickListener

现在,您可以将 View.OnClickListener onClick = new View.OnClickListener() { @Override public void onClick(View view) { // write your code here } }; 设置为您的视图onClick

ClickListener

答案 3 :(得分:0)

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

然后你有两个选项,它们创建一个实现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 */ }
};