代码1
AlertDialog.Builder buider = new AlertDialog.Builder(this);
buider .setPositiveButton("qqq", null).show();
代码2
AlertDialog.Builder buider = new AlertDialog.Builder(this) .setPositiveButton("qqq", null).show();
代码3
AlertDialog buider = new AlertDialog.Builder(this).setPositiveButton("qqq", null).show();
老鸟一看就知道代码1代码3正确,代码2错误。‘
新手表示不懂其中缘由,求解。。。
------解决方案--------------------
代码2用的AlertDialog.Builder buider,代码3用的AlertDialog buider
------解决方案--------------------
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不匹配
------解决方案--------------------
AlertDialog.Builder 是一个类
AlertDialog 是另一个类
实现方法肯定不一样啊
------解决方案--------------------
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();
}
}