我試圖顯示一個警告對話框,當用戶輸入有效的電子郵件和密碼登錄失敗。由於登錄過程必須處理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()'來編輯我的代碼,但問題仍然存在。 –