2012-07-12 13 views
19

Chcę utworzyć przycisk, który poprowadzi użytkownika z powrotem do głównej aktywności, która nie ma nazwy Android = "com.example.example".
Ma android.intent.etc ...
Jak mogę odwołać się do mojego przycisku, aby wrócić do tej czynności?Przycisk, aby wrócić do MainActivity

+0

dzięki za edycji (mają zły język angielski) – Moussa

+0

jaka jest pełna nazwa Aktywny próbujesz zacząć? – confucius

+0

Main Activity, jej jest Moussa

Odpowiedz

40

Powiedzmy swoją główną działalnością jest nazywany 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

Spowoduje to dodanie do stosu nowej instancji czynności Strona główna, a nie przeniesienie użytkownika z powrotem do działania Strona główna. –

+0

Dodajesz nową instancję do stosu !! –

+1

Dodałem flagę, aby nie dodawać nowej instancji do stosu. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

0

Cóż z dowolnego miejsca wystarczy wywołać funkcję startActivity() z wymaganymi parametrami wewnątrz przycisków onClick method. to jest to!

+0

??? im noob przepraszam – Moussa

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

błąd w nowej intencji (this, Main.class); – Moussa

+0

co jest błąd – confucius

+0

To jest moja konfiguracja: public void onClick (View v) { \t // Wykonaj działania na kliknięcia \t \t Intent intencji = new Intent (to Main.class); \t intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK \t | Intent.FLAG_ACTIVITY_CLEAR_TOP); \t startActivity (zamiar); Ten błąd: Konstruktor Intent (new View.OnClickListener() {}, Class

) jest niezdefiniowany ". – Moussa

14

użycie startActivity(intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));

+0

+1: To jest poprawna odpowiedź. Dodanie flag, takich jak NEW_TASK, spowoduje tylko nieoczekiwane zachowanie użytkownika, a po prostu rozpoczęcie nowej czynności doda drugą (nową) instancję do stosu. – Devunwired

+0

nie działa, mógłbyś być bardziej szczegółowy? – Moussa

+1

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

9

Czasami można po prostu zadzwonić activity.finish() do końca bieżącej działalności, więc głównym (stworzony) Aktywność wyskoczy.

Jeśli to nie jest przypadek, to zrobić:

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

nie oznacza to, że przejdzie do głównej, to znaczy, że wróci do poprzedniej aktywności na stosie. To źle –

+0

To nie daje odpowiedzi na pytanie. Gdy masz już wystarczającą [reputację] (https://stackoverflow.com/help/whats-reputation), będziesz mógł [komentować dowolny wpis] (https://stackoverflow.com/help/privileges/comment); zamiast tego [dostarczaj odpowiedzi, które nie wymagają wyjaśnień od pytającego] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-zamiast). - [Z recenzji] (/ review/low-quality-posts/16343576) – Zoe

+0

@LunarWatcher Z całym szacunkiem się nie zgadzam - to _ jest _ _przeciętą odpowiedzią ... Próba, która może być wadliwa i działa w bardzo szczególnych przypadkach - ale rozwiązanie jest złe, nie jest wystarczającym powodem do usunięcia. –

Powiązane problemy