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 angezeigtWas i versucht
Ich versuchte, die Absicht zu unter
012 zu ändernIntent 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 -->
es könnte b aufrufen sonst Teil der if-Anweisung. es sollte funktionieren –
@ 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
Haben Sie die Aktivität hinzugefügt, um sie zu manifestieren? – Raaf003