protected Dialog onCreateDialog(int id) {
        switch (id) {
        case DIALOG_YES_NO_MESSAGE:
            return new AlertDialog.Builder(AlertDialogSamples.this)
                .setIcon(R.drawable.alert_dialog_icon)
                .setTitle(R.string.alert_dialog_two_buttons_title)
                .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {                        /* User clicked OK so do some stuff */
                    }
                })
                .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {                        /* User clicked Cancel so do some stuff */
                    }
                })
                .create();
......上面的代码是android中的例子,return new AlertDialog.Builder后面分别跟着.setIcon,.setTitle等,这是什么语法,有什么特殊含义吗
谢谢

解决方案 »

  1.   

    这不是什么语法, 而是在前一个函数调用之后在返回值对象(AlertDialog对象)上继续调用另一个方法. 
      

  2.   

    主要是太长了,分行写的,所以LZ没看明白,其实就是new x.a().b().c() ;a, b,c都是已经写好了的方法
      

  3.   

    return new AlertDialog.Builder后面分别跟着.setIcon,.setTitle等是设置要返回的对象的属性
      

  4.   

    AlertDialog.Builder---->AlertDialog包下的Builder类跟new java.util.ArrayList()一样.
      

  5.   


    new AlertDialog.Builder(AlertDialogSamples.this) 我理解是生成一个Builder对象,但是后面跟真的.setIcon, .setTitle等都是在设定Builder对象的属性吗?如果是这样,那么下面的代码如何解释呢?
    Class A{
      public B getB{return new B;}
    }Class B{
      public C getC{return new C;}
    }new A().getB().getC();这时getB是A的方法,而getC是B的方法。可是是按照以前的分析,getB和getC都是A的方法啊?谢谢 再解释一下,我是新人,麻烦了!
      

  6.   

    new A() 调用 A类的getB()方法,生成B类的实例,然后B类的实例调用B类的getC()方法 得到C类的实例
      

  7.   

    google 一群SB 对话框弄的这么难用