2012-08-04 67 views
0

我正在为学习android测试应用程序,我尝试使用“implements”来使用类函数接口,正如我在Android教程中看到的。但是,当我尝试按照本教程开发自己的界面时使用的语法时,出现错误并且无法使用界面功能。在教程中使用由人的语法就像关键字实现不工作Java

public class alfred extends Activity implements View.onClickListener() 
{some code .....} 

以同样的方式我没有,但我自己设计的界面就像

public class tony extends Activity implements Myinterface.foo() 
{...} 

,但我不能做Myinterface.foo(),但可以做MyInterface的和然后使用所有的接口功能。这是为什么? 感谢您的亲切帮助!

+0

你能发布你的MyInterface是如何定义的吗? – 2012-08-04 22:55:44

+1

您可以链接到该教程吗?我真的怀疑它会告诉你使用'implements Type.method()'而不是'implements Type'。 – Pshemo 2012-08-04 22:56:31

+0

这是一个相当简单的界面。一些简单的功能,仅用于测试目的。 – 2012-08-04 22:57:14

回答

3

在类视图那里有

public interface OnClickListener { 
     void onClick(View v); 
} 

仔细查看定义的接口的View.OnClickListener()不View.onClickListener()

尝试

public class tony extends Activity implements Myinterface 
+0

如果OnClickListener是一个接口,为什么在这种情况下使用它()View.OnClickListener()? – 2012-08-04 23:03:19

+0

这就是你的教程中的一个错误,你不需要()来实现一个接口 – Michele 2012-08-04 23:16:30

+0

没有冒犯,但我认为你错了。它不是一个接口,因为当我们使用setonclicklistener()函数的时候,在它的参数里面,新的View.OnClickListener(),所以我认为它不是教程的错误 – 2012-08-04 23:25:20

0

你的行为体验正是应该发生的事情!我猜测并说你正在学习的教程中有一个错误。

要使用接口,请实现接口,而不是其公开的接口。因此,例如,您执行View.OnClickListener而不是View.OnClickListener.onClick() - 这是错误是我想象的地方),或在您的情况下Myinterface。然后您必须将所需的方法放入课程中(例如onClick(View)foo())。