Ich habe in einem Fragment ein Ereignis OnfocuChangeListener für einen EditText. Ich habe programmiert, dass, wenn es keinen Fokus hat, auf einer entfernten DB suchen, um zu überprüfen, ob der Benutzer existiert. Im Listener erstelle ich den ProgressDialog. Wenn ich den Fokus im EditText habe und ich in die Landschaft übergehe, stürzt es ab, wenn .dismiss() der ProgressDialog. Irgendeine Idee?Absturz, wenn ich in Landschaft ändere OnFocusChangeListener
txtUsuario.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
final ProgressDialog pDialog = new ProgressDialog(getContext());
if (!hasFocus) {
pDialog.setMessage("Comprobando si existe usuario..., espere.");
pDialog.show();
strq = new StringRequest(Request.Method.POST, url_user, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject mainObject = new JSONObject(response);
String responseString = mainObject.getString("success");
//SI SE REALIZÓ LA GRABACIÓN
if (responseString.equals("1")) {
pDialog.dismiss();
Toast.makeText(getContext(), "Ya existe ese usuario, elija otro", Toast.LENGTH_LONG).show();
txtUsuario.setText("");
txtUsuario.requestFocus();
} else {
// **** HERE CRASH ****
pDialog.dismiss();
}
} catch (JSONException e) {
pDialog.dismiss();
e.printStackTrace();
}
//pDialog.dismiss();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
pDialog.dismiss();
Toast.makeText(getContext(), "Error del servidor: " + error, Toast.LENGTH_SHORT).show();
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> parametros = new HashMap<>();
parametros.put("usuario", txtUsuario.getText().toString());
return parametros;
}
};
rqt.add(strq);
}
}
});