Ich habe ein auf Klick Zuhörer, und dass auf Klick Zuhörer, ich habe ein, wenn, sonst statment, wieonResponse Boolesche Instanzvariable wird nicht gesetzt?
@Override
public void onClick(View v) {
postMethodRegister();
System.out.println("mSuccess is set to " + mSuccess);
if (mSuccess) {
Intent login = new Intent(Login.this, MainActivity.class);
startActivity(login);
}else{
Toast toast = Toast.makeText(getApplicationContext(), "Please Check your UserName or Password", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER | Gravity.CENTER_HORIZONTAL, 0, 0);
toast.show();
}
}
folgt Ich habe auch eine Boolesche Variable, die standardmäßig auf false, privat boolean mSuccess gesetzt ist ; Wenn die onResponse ausgeführt wird, setze ich sie auf true, sonst setze ich sie auf false und führe die entsprechende Antwort aus, aber aus irgendeinem Grund führt der erste Versuch einer Anmeldung die onResponse aus, aber wenn es auf onClick ankommt, wird mSuccess auf gesetzt falsch was ist damit los? mSuccess ist eine Instanzvariable.
public void postMethodRegister() {
StringRequest request = new StringRequest(Request.Method.POST, loginUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
System.out.println("On Response was thrown in Login"+response);
mSuccess=true;
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println("Error was thrown in Login" + error.getMessage()+"and the response code is ");
mSuccess=false;
}
})
Ich sehe das macht viel Sinn! Jede schnelle Lösung, die Sie für dieses Problem vorschlagen? – eli
Sie können schreiben, wenn Block-Code in onResponse() und sonst blockieren Code in onErrorResponse() nach dem Entfernen beider Blöcke von onClick(). –
Stimmt, guten Ruf danke! – eli