代码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();
		
	}
	
}