我试图显示一个警告对话框,当用户输入有效的电子邮件和密码登录失败。由于登录过程必须处理HTTP请求和JSON,我把它在AsyncTask中,我不确定这是为什么我的警报对话框不能显示的问题(我不希望)。因此,这是方法checkUser
,这就是所谓内AsyncTask
类的onPostExecute
:Android - 在AsyncTask中显示警报对话
public void checkUser(JSONObject json){
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
if (tag == login_tag){
// check for login response
try {
if (json.getString(KEY_SUCCESS) != null) {
String res = json.getString(KEY_SUCCESS);
if(Integer.parseInt(res) == 1){
// user successfully logged in
// Store user details in SQLite Database
// code omitted
} else{
// Error in login
mProgressDialog.dismiss();
builder.setMessage("Incorrect username/password")
.setTitle("Error")
.setNeutralButton("OK", new OnClickListener() {
public void onClick(final DialogInterface dialog,final int which) {
dialog.cancel();
}
}).create().show();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
不知怎的,我的警告对话框不能显示,我不知道为什么。如果你有什么想法解决这个问题的原因,请帮助我。非常感谢!
编辑︰原来我执行此方法后只关闭我的Progress Dialog
,所以我决定在显示警报对话框之前关闭它。但它仍然没有解决问题。
我尝试添加,但它仍然不能显示,悲哀。 –
@strawberryjam:首先确保控制进入其他区块,然后用最新代码 –
编辑你的问题,谢谢你的建议!我只是通过添加'create()'来编辑我的代码,但问题仍然存在。 –