2016-06-05 7 views
-2

AusgabeKann Aktivität nach erfolgreicher Anmeldung navigieren - Android Volley

Nach erfolgreicher Anmeldung Überprüfung vom Server, nicht in der Lage zu öffnen Neue Aktivität. Aktivität bleibt bei Anmeldung Aktivität

Hintergrund

Was ich versuche, hier zu erreichen, ist offen „Welcome“ Aktivität nach erfolgreicher Benutzeranmeldung. Der Server überprüft korrekt die Benutzeranmeldung und zeigt den Toast, aber nicht das Öffnen der Aktivität

-Code

private static final String LOGIN_URL = "<myURL>/login.php"; 

    public static final String KEY_LOGUSERNAME = "loUname"; 
    public static final String KEY_LOGPASSWORD = "loPass"; 

    EditText LogUser, LogPass; 
    Button btnsLogin; 

    String loUser, loPassword; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 
     initalizevars(); 
     btnsLogin.setOnClickListener(this); 
    } 

    public void initalizevars() { 
     LogUser = (EditText) findViewById(R.id.etLogUser); 
     LogPass = (EditText) findViewById(R.id.etLogPass); 
     btnsLogin = (Button) findViewById(R.id.btnLogin); 
    } 

    private void login() { 
     loUser = LogUser.getText().toString().trim(); 
     loPassword = LogPass.getText().toString().trim(); 

     StringRequest stringRequest1 = new StringRequest(Request.Method.POST, LOGIN_URL, new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       if(response.trim().equals("Success")) 
       { 
        Toast.makeText(Login.this,response,Toast.LENGTH_LONG).show(); 
        openProfile(); 
       }else 
       { 
        Toast.makeText(Login.this,response,Toast.LENGTH_LONG).show(); 
       } 
      } 
     }, new Response.ErrorListener() { 

      @Override 
      public void onErrorResponse(VolleyError error) { 
       Toast.makeText(Login.this,error.toString(),Toast.LENGTH_LONG).show(); 
      } 
     }) { 
      @Override 
      protected Map<String, String> getParams() throws AuthFailureError { 
       Map<String, String> map = new HashMap<String, String>(); 
       map.put(KEY_LOGUSERNAME, loUser); 
       map.put(KEY_LOGPASSWORD, loPassword); 
       return map; 
      } 

     }; 
     RequestQueue requestQueue = Volley.newRequestQueue(this); 
     requestQueue.add(stringRequest1); 

    } 

    private void openProfile() { 
     Intent i = new Intent(this,Welcome.class); 
     startActivity(i); 
    } 


    @Override 
    public void onClick(View v) { 
     if (v == btnsLogin) { 
      login(); 
     } 

    } 

Der Toast aus der Antwort des Servers wird

auf der erfolgreichen Überprüfung angezeigt

Was i versucht

Ich versuchte, die Absicht zu unter

012 zu ändern
Intent i = new Intent(Login.this,Welcome.class); 
startActivity(i); 

Aber kein Glück. Bin stecken geblieben und nicht in der Lage herauszufinden, wo und was schief gelaufen ist.

Fordern Sie Ihre Hilfe an, um mich in die richtige Richtung zu bringen.

Dank

EDIT i das, wenn die Bedingung geändert mehr sinnvoll zu sein und auch

if (response.trim().equals("Success")) { 
        Toast.makeText(Login.this, response + " Right", Toast.LENGTH_LONG).show(); 
        openProfile(); 
       } else { 
        Toast.makeText(Login.this, response + " Wrong", Toast.LENGTH_LONG).show(); 
        openProfile(); 
       } 

vorgeschlagen zu debuggen Wie user @ user1232726 wird der else-Teil und die Aktivität in Betracht gezogen werden ist geöffnet, was nicht der Fall sein sollte.

Meine login.php Ausgänge

Success 
<!-- Hosting24 Analytics Code --> 
<script type="text/javascript" src="http://stats.hosting24.com/count.php"></script> 
<!-- End Of Analytics Code --> 
+0

es könnte b aufrufen sonst Teil der if-Anweisung. es sollte funktionieren –

+0

@ user1232726: Bingo Ja. Funktioniert, wenn ich die Methode in den else Teil lege. Aber warum ist es so? weil ich den Erfolg in der If-Bedingung verifiziere und nicht im Else. Was fehlt mir hier? Bitte lassen Sie mich wissen – Sriram

+0

Haben Sie die Aktivität hinzugefügt, um sie zu manifestieren? – Raaf003

Antwort

0

Im Grunde war das Problem mit der Server-Antwort, wie es einige Javascript zusammen mit der Erfolgsmeldung tat zurückzukehren. Anleitung von @ cricket_007, @IshitaSinha helfen mir tatsächlich, das Problem zu beheben.

Lösung: Zusätzliche Javascript/oder Nachrichten können hinzugefügt werden, wenn Sie freie hosting Aufstellungsorte verwenden. Überprüfen Sie die gesamte Antwort vor dem Vergleich mit der tatsächlichen Antwort