2012-04-01 5 views
0

Sorry, diese Frage erneut zu stellen, aber ich versuchte mehrere Lösungen auf stackoverflow und anderen Android-Gruppen, aber keiner von ihnen arbeitete für mich.AlertBox Aufrufe Intent ohne Klick auf positive Schaltfläche

In einer Aktivität onBackpressed möchte ich eine Alarmbox anzeigen, die den Benutzer fragt "Anwendung beenden?" und wenn der Benutzer auf YES klickt, möchte ich die Launcher-Aktivität meiner App starten. Bleiben Sie auf derselben Seite, wenn Sie auf NO klicken. Problem ist, dass nach Warnmeldung anzeigt ich automatisch Werfer umgeleitet (home) Aktivität automatisch, bevor ich drücken YES-Taste

Plz helfen

Code:

public void onBackPressed() { 
// TODO Auto-generated method stub 
super.onBackPressed(); 
Log.i(TAG, "BACK PRESSED"); 
AlertDialog.Builder renameDialog = new AlertDialog.Builder(MainMenu.this); 
renameDialog.setTitle("Warning"); 
renameDialog.setMessage("Do you want to logout?"); 
renameDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface arg0, int arg1) { 
launchIntent(); 
} 
}); 

renameDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface arg0, int arg1) { 
arg0.cancel();  
} 
}); 
renameDialog.show(); 
} 

private void launchIntent() { 
Log.i("positive button","pressed"); 
Intent i=new Intent(MainMenu.this,LoginActivity.class); 
i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
Log.e("from main menu","calling login"); 
startActivity(i); 
} 
+0

was genau wollen Sie tun – Ishu

Antwort

3

Sie müssen super.onBackPressed(); innen bewegen der Klick-Listener des positiven Knopfes, wie es gerade die laufende Aktivität beendet. Oder wenn Sie möchten, einfach diese Zeile kommentieren (ausschließen), da Ihre aktuelle Logik zeigt, dass Sie versuchen, eine neue Aktivität zu starten, wenn Sie auf die positive Schaltfläche klicken.

+0

Ich zweite Waqas Antwort ... super.onBackPressed() wird nicht benötigt ... vorausgesetzt, Sie haben eine startActivity (homeIntent) innerhalb launchIntent() -Methode geschrieben. super.onBackPressed() beendet die aktuelle Aktivität bevor sie dialog.show() aufrufen kann – drulabs

0

Rufen Sie nicht super.onBackPressed() auf!