问题:
16. ProgressDialog show()的时候
12-18 11:05:55.356: E/AndroidRuntime(461): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
错误原因:定义了一个Context 的变量,如 private Context mContext; 同时在 onCreate(Bundle savedInstanceState); 方法中采用 mContext = getApplicationContext(); 实例化。同时在该Activity中添加一个AlertDialog的提示对话框,采用如下方式实例化:AlertDialog.Builder builder = new AlertDialog.Builder(mContext);这样就会出现异常!致报这个错是在于new AlertDialog.Builder(mcontext),虽然这里的参数是AlertDialog.Builder(Context context)但我们不能使用getApplicationContext()获得的Context,而必须使用Activity,因为只有一个 Activity才能添加一个窗体。
解决方法:将new AlertDialog.Builder(Context context)中的参数用Activity.this(Activity是你的Activity的名称)来填充就可以正确的创建一个Dialog了。
本文详细解释了在Android应用开发中,当使用Activity作为Context创建AlertDialog Dialog框时,可能会遇到WindowManager$BadTokenException错误的原因,并提供了正确的解决方法。通过使用Activity.this代替getApplicationContext(),可以避免此错误,确保Dialog框正确创建。
1万+

被折叠的 条评论
为什么被折叠?



