1
if (Commons.HaveNetworkConnection()) {
                if ((txt_USERNAME.getText().toString().trim() != null && txt_USERNAME
                        .getText().toString().length() != 0)// username
                                                            // check
                        && (txt_PASSWORD.getText().toString().trim() != null && txt_PASSWORD
                                .getText().toString().length() != 0)) {// password
                    // check
                    pd = ProgressDialog.show(LoginActivity.this.getApplicationContext(), "","Please wait...");
                    Toast.makeText(getContext(), "data"+txt_USERNAME + txt_PASSWORD, Toast.LENGTH_LONG).show();
                    Thread thread = new Thread(LoginActivity.this);
                    thread.start();

                } else {
                    Toast.makeText(getBaseContext(),
                            "Invalid username or password",
                            Toast.LENGTH_LONG).show();
                }
            } else {
                Commons.setOnlineAlert();
            }

}catch(Exception e){Toast.makeText(getBaseContext(),"problem in onclick 1 block"+e,Toast.LENGTH_LONG).show();}
        }

        private Context getContext() {
            // TODO Auto-generated method stub
            return null;
        }

    });

当我单击登录按钮时,会发生运行时异常

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 

请帮助我如何解决这个问题

4

2 回答 2

1

您正在显示带有 null 的 toast 消息.. 删除此方法

 private Context getContext() {
            // TODO Auto-generated method stub
            return null;
        }

在这一行

Toast.makeText(getContext(), "data"+txt_USERNAME + txt_PASSWORD, Toast.LENGTH_LONG).show();

改成

Toast.makeText(getApplicationContext(), "data"+txt_USERNAME + txt_PASSWORD, Toast.LENGTH_LONG).show();
于 2013-10-07T06:14:55.107 回答
0

在您的Context方法中,您实际上应该返回活动的上下文而不是 null

    private Context getContext() {
        // TODO Auto-generated method stub
        return LoginActivity.this.getApplicationContext();
    }

并在您的Toast消息中设置如下:

      Toast.makeText(getContext(), "data"+txt_USERNAME + txt_PASSWORD, Toast.LENGTH_LONG).show();
于 2013-10-07T06:20:07.110 回答