1
我希望有一个进度对话框,显示登录时用户... 我必须有遵循不同的解决方案,但仍显示我DIS 错误登录进度对话框,提示错误
窗口管理器:android.view.WindowLeaked:活动COM .example.mariamhp.inicrepot.login泄露了最初在此处添加的窗口com.android.internal.policy.impl.PhoneWindow $ DecorView {1ebb896b VE .... R ...... D 0,0-729,322}
bLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String username = etUsername.getText().toString();
final String password = etPassword.getText().toString();
if(username.length()==0){
etUsername.requestFocus();
etUsername.setError("FIELD CANNOT BE EMPTY");
}
else if(!username.matches("[0-1a-zA-Z]+"))
{
etUsername.requestFocus();
etUsername.setError("ENTER ONLY ALPHANUMIRIC CHARACTER");
}
else if(password.length()==0)
{
etPassword.requestFocus();
etPassword.setError("FIELD CANNOT BE EMPTY");
}else {
final ProgressDialog progresRing = ProgressDialog.show(login.this, "Login in", "Please Wait...", true);
progresRing.setCancelable(true);
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(100);
} catch (InterruptedException ignored) {
progresRing.dismiss();
}
}
}).start();
}
// Response received from the server
Response.Listener<String> responseListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse = new JSONObject(response);
boolean success = jsonResponse.getBoolean("success");
if (success) {
Intent intent = new Intent(login.this, user_area.class);
login.this.startActivity(intent);
finish();
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(login.this);
builder.setMessage("Login Failed")
.setNegativeButton("Retry", null)
.create()
.show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
};
LoginRequest loginRequest = new LoginRequest(username, password, responseListener);
RequestQueue queue = Volley.newRequestQueue(login.this);
queue.add(loginRequest);
}
}
);
}
@Override
public void onStop() {
super.onStop();
if (progresRing != null) {
progresRing.dismiss();
progresRing = null;
}
}
}
请任何可能的解决方案....这里是我的logcat
E/WindowManager: android.view.WindowLeaked: Activity com.example.mariamhp.inicrepot.login has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{1ebb896b V.E..... R......D 0,0-729,322} that was originally added here
at android.view.ViewRootImpl.<init>(ViewRootImpl.java:363)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:271)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
at android.app.Dialog.show(Dialog.java:298)
at android.app.ProgressDialog.show(ProgressDialog.java:116)
at android.app.ProgressDialog.show(ProgressDialog.java:99)
at com.example.mariamhp.inicrepot.login$2.onClick(login.java:64)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
应用冲突时,我添加progressRing.dismiss显示java.lang.NullPointerException:尝试“()空隙android.app.ProgressDialog.dismiss”调用虚拟方法上一个空对象引用 – moosa
请的onCreate之前声明ProgressDialog progresRing。 –