View.OnClickListener()函数或接口函数、接口、View、OnClickListener

2023-09-05 01:00:25 作者:问世间谁能敌我

时View.OnClickListener()的函数或接口?当我们尝试设置在Android的一个onclicklistener()方法中,我们使用新的View.OnClickListener(),它的错误我在那里的Cuz,据我所知,

Is View.OnClickListener() a function or interface? When we try to set a onclicklistener() method in android, we use new View.OnClickListener() and it bugs me there cuz as far as I know,

,我们不需要初始化包含静态方法序为使用这些方法类的一个对象。我们为什么这样做? 当我们用工具序来实现一个接口,我们并不调用接口的静态方法。

所以,可以有一个人告诉我,为什么我们做的:

So can some one tell me why do we do:

在新View.OnClickListener(),使用的onclick()方法? 为什么要使用()与View.OnClickListener,如果它是一个接口?

感谢您的答复..

推荐答案

我不知道我理解你正在写的静态方法是什么。 View.OnClickListener是一个接口:http://developer.android.com/reference/android/view/View.OnClickListener.html

I'm not sure I understand what you are writing about static methods. View.OnClickListener is an interface: http://developer.android.com/reference/android/view/View.OnClickListener.html

要在视图上设置一个点击监听器,你传递的实例的实施OnClickListerner接口:http://developer.android.com/reference/android/view/View.html#setOnClickListener(android.view.View.OnClickListener)

To set a click listener on a view, you pass an instance implementing the OnClickListerner interface: http://developer.android.com/reference/android/view/View.html#setOnClickListener(android.view.View.OnClickListener)

要做到这一点在Android上最常用的方法是定义一个实现OnClickListener像

The most common way to do this in android is to define an anonymous inner class (http://docs.oracle.com/javase/tutorial/java/javaOO/innerclasses.html) that implements OnClickListener like

myView.setOnClickListener(new View.OnClickListener() {
    @Override           
    public void onClick(View v) {
        // Handle view click here           
    }
});

在code以上两个定义了一个匿名内部类,并创建它的一个实例。它相当于先定义一个类实现View.OnClickListener(如果在同一个类中定义)

The code above both defines an anonymous inner class and creates an instance of it. It is equivalent to first defining a class implementing View.OnClickListener (if defined in the same class)

class MyOnClickListener implements View.OnClickListener {
    @Override           
    public void onClick(View v) {
        // Handle view click here           
    }
}

和以后使用这种

MyOnClickListener listener = new MyOnClickListener();
myView.setOnClickListener(listener);