在非activity中使用alertDialog对话框

  有的时候,我们可能在activity类中调用非activity类中的方法,并需要在非activity类方法中定义AlertDialog对话框,怎么办呢:

 1.一般情况是在activity类中定义AlertDialog,如下代码;

  new AlertDialog.Builder(self) 
	  	.setTitle("确认")
	  	.setMessage("确定吗?")
	  	.setPositiveButton("是", null)
	  	.setNegativeButton("否", null)
	  	.show();
 2.在非 activity类中定义AlertDialog:

    DownLoadAPK.downLoad(getBaseContext());//activity类中

   

    public static void downLoad(Context context){//非activity类中
		System.out.println("context : " + context);
		new AlertDialog.Builder(context) 
	  	.setTitle("确认")
	  	.setMessage("确定吗?")
	  	.setPositiveButton("是", null)
	  	.setNegativeButton("否", null)
	  	.show();
	}
   这个时候会报错: Unable to add window -- token null is not for an application

  

  因此我们必须写成如下形式才正确

  DownLoadAPK.downLoad(GetCategoryApkList.this);//GetCategoryApkListactivity类名
  
  public static void downLoad(Context context){//非activity类中
		System.out.println("context : " + context);
		new AlertDialog.Builder(context) 
	  	.setTitle("确认")
	  	.setMessage("确定吗?")
	  	.setPositiveButton("是", null)
	  	.setNegativeButton("否", null)
	  	.show();
	}

 
  


    

你可能感兴趣的:(安卓)