2012-07-12 16 views
19

Voglio creare un pulsante che riporta l'utente direttamente all'attività principale che non ha il nome android = "com.example.example".
Ha android.intent.etc ...
Come posso fare riferimento al mio pulsante per tornare a questa attività?Pulsante per tornare a MainActivity

+0

grazie per l'editing, (hanno cattivo inglese) – Moussa

+0

qual è il nome completo della attività che si sta tentando di avviare? – confucius

+0

principale attività, quella di lei è il Moussa

risposta

40

permette di dire la vostra attività principale si chiama Main.java.

btnBack.setOnClickListener(new OnClickListener(){ 

    private void onClick(){ 
    Intent intent = new Intent(currentActivity.this, Main.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    } 
}); 
+0

Ciò aggiungerà una nuova istanza dell'attività Home allo stack, non riporta l'utente all'attività Home. –

+0

Stai aggiungendo una nuova istanza allo stack !! –

+1

Ho aggiunto il flag in modo che non aggiunga una nuova istanza allo stack. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

0

Bene da ovunque si chiami startActivity() con i parametri richiesti all'interno del metodo onClick dei pulsanti. Questo è tutto.

+0

??? im a noob sorry – Moussa

3
Intent intent = new Intent(this, Main.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intent); 
+0

error on new Intent (this, Main.class); – Moussa

+0

cosa è l'errore – confucius

+0

Questa è la mia messa a punto: public void onClick (Visualizza v) {// \t Esegui azione sul click \t \t Intent intento = new Intent (questo, Main.class); \t intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK \t | Intent.FLAG_ACTIVITY_CLEAR_TOP); \t startActivity (intento); \t \t Questo è l'errore: L'intento del costruttore (nuovo View.OnClickListener() {}, Classe

) non è definito '. – Moussa

14

uso startActivity(intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));

+0

+1: questa è la risposta corretta. L'aggiunta di flag come NEW_TASK creerà solo un comportamento imprevisto per l'utente, e semplicemente l'avvio di una nuova attività aggiungerà una seconda (nuova) istanza allo stack. – Devunwired

+0

non funziona, potresti essere più dettagliato? – Moussa

+1

@Moussa Intent a = new Intent (this, Home.class); a.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity (a); –

9

A volte si può chiamare activity.finish() per terminare l'attività in corso, in modo che il principale (prima creato) attività uscirà fuori.

Se questo non è il vostro caso, fare questo:

Intent intent = new Intent(getApplicationContext(), Main.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)    
startActivity(intent); 
0
public void onBackPressed(){ 
    finish(); 
} 
+2

questo non significa che andrà al main, significa che tornerà alla precedente attività in pila. È sbagliato –

+0

Questo non fornisce una risposta alla domanda. Una volta che hai [reputazione] sufficiente (https://stackoverflow.com/help/whats-reputation) sarai in grado di [commentare qualsiasi post] (https://stackoverflow.com/help/privileges/comment); invece [fornisci risposte che non richiedono chiarimenti da parte del richiedente] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-, invece). - [Dalla recensione] (/ recensione/post di bassa qualità/16343576) – Zoe

+0

@LunarWatcher Sono rispettosamente in disaccordo - questo è un tentativo di rispondere ... Un tentativo che è forse difettoso e accade di funzionare in casi molto specifici - ma un la soluzione è cattiva non è una ragione sufficiente per la cancellazione. –

Problemi correlati