android AlertDialog显示错误 Unable to add window token null is not for an application解决办法


public  void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        findViewById(R.id.button1).setOnClickListener( new Button.OnClickListener() {
            
             public  void onClick(View v) {
                 new AlertDialog.Builder(getApplicationContext())
                .setTitle(R.string.dialogTitle)
                .setMessage(R.string.dialogMessage)
                .setPositiveButton("确定",  new DialogInterface.OnClickListener() {
                     public  void onClick(DialogInterface dialog,  int which) {
                        Toast.makeText(getApplicationContext(), "你按了确定。", Toast.LENGTH_SHORT).show();
                    }
                }).show();
            }
        });
    }


报错:Unable to add window token null is not for an application

  

异常原因:AlertDialog创建语句public AlertDialog.Builder (Context context)中,不能使用getApplicationContext()得到的context,而必须使用Activity,所以解决如下

 

解决办法:

将 new AlertDialog.Builder(getApplicationContext()) 改为 new AlertDialog.Builder(MainActivity.this)

其中MainActivity 为 当前Activity的名称 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM