android 中的监听器与内部匿名类

1,内部匿名类

在 java 中,内部匿名类就是没有名字的内部类。注意,内部匿名类有两个关键词,一个内部,一个是没有名字。其目的是为了简化代码的书写。使用内部匿名类主要的目的是为了简化代码的书写。


2,android 中监听器的实现

在平时写代码中,我们在使用按钮等控件的时候,经常会使用内部匿名类。这里我们以为 Button 为例子,代码如下:

        mTrueButton = (Button) findViewById(R.id.true_button);
        mTrueButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                do(true);
            }
        });

可以看到,setOnClickLisener 中就使用了一个内部匿名类,并实现了 OnClickListener 这个接口中唯一的方法。我们也可以具体定义一个类,并实现 OnClickListener 接口,然后注册给 setOnClickLisener ,显然内部匿名类简化了代码。下面是 OnClickListener 这个接口,可以看到,android 中这个接口只有一个函数需要实现。

    /**
     * Interface definition for a callback to be invoked when a view is clicked.
     */
    public interface OnClickListener {
        /**
         * Called when a view has been clicked.
         *
         * @param v The view that was clicked.
         */
        void onClick(View v);
    }



你可能感兴趣的:(android)