代码2用的AlertDialog.Builder buider,代码3用的AlertDialog buider

解决方案 »

  1.   

    AlertDialog.Builder buider = new AlertDialog.Builder(this) .setPositiveButton("qqq", null).show();  public AlertDialog show() {
                AlertDialog dialog = create();
                dialog.show();
                return dialog;
            }可以看出 show方法返回的是AlertDialog,与你的定义AlertDialog.Builder buide不匹配
      

  2.   

    AlertDialog.Builder 是一个类
    AlertDialog 是另一个类
    实现方法肯定不一样啊
      

  3.   

    2楼是正解。 (1)show()方法是放在了Builder 类下,(3)返回的是一个AlertDialog的对象。这里的(1)和(3)对应着你上边的代码段的编号。而(2)是把show()返回的AlertDialog对象,赋值给Builder 对象,这如果不加强转的话肯定是错误的。放个java文件你自己理解下;
    public class One { private void show() {
    System.out.println("show1"); }
    public static class Builder{
    public One show() {
    One a = new One();
    a.show();
    return a;
    }
    }

    }
    public class Main { /**
     * @param args
     */
    public static void main(String[] args) {

    //1
    One.Builder a1 = new One.Builder();
    a1.show();

    //2
    //One.Builder a2 = new One.Builder().show();

    //3
    //One a3 = new One.Builder().show();

    }
    }