监听器 与. xxx .xxx

500 查看

监听器

之前很不明白为什么实现监听器的时候会是如下的写法:

import android.view.View;

public class Test extends Activity{
    @Override protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        final Button button = new Button(this);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // 点击事件处理            }
        });
    }
}

一直把OnClickListener当作View的一个子类,还想为什么一定要用View.的形式呢?我已经import了啊,突然才反应过来,这是View里面的一个接口啊,直接使用接口就找不到是哪个接口了。
用匿名内部类的形式实现的了一个监听接口,onClick只是接口中定义的一个方法,传入的View v是所要监听的View。

.xxx .xxx

昨天写activity的时候,看见一个这样的写法:

return new AlertDialog.Builder(getActivity())
                .setView(v)
                .setTitle(R.string.date_picker_title)
                .setPositiveButton(android.R.string.ok, null)
                .create();                

我琢磨这一连串的....都是什么?JAVA神之技巧么?后来一琢磨,原来后面的四个方法都连续返回一个对象,通过连续三个参数的传入,最后create()一个拥有三个参数的对象,当然,如果显示器够宽的话,写成一行就不会遇见这种脑抽问题了。