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
Odpowiedz
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);
}
});
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. –
Dodajesz nową instancję do stosu !! –
Dodałem flagę, aby nie dodawać nowej instancji do stosu. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Cóż z dowolnego miejsca wystarczy wywołać funkcję startActivity() z wymaganymi parametrami wewnątrz przycisków onClick method. to jest to!
??? im noob przepraszam – Moussa
Intent intent = new Intent(this, Main.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
błąd w nowej intencji (this, Main.class); – Moussa
co jest błąd – confucius
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
użycie startActivity(intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
+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
nie działa, mógłbyś być bardziej szczegółowy? – Moussa
@Moussa Intent a = new Intent (this, Home.class); a.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity (a); –
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);
public void onBackPressed(){
finish();
}
nie oznacza to, że przejdzie do głównej, to znaczy, że wróci do poprzedniej aktywności na stosie. To źle –
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
@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. –
dzięki za edycji (mają zły język angielski) – Moussa
jaka jest pełna nazwa Aktywny próbujesz zacząć? – confucius
Main Activity, jej jest intent-filter> –
Moussa