android - activity - sending data between fragments




Android: Zurück zur vorherigen Aktivität (14)

Ich möchte etwas einfaches auf Android-App tun. Wie ist es möglich, zu einer früheren Aktivität zurückzukehren?

Welchen Code benötige ich, um zu früheren Aktivitäten zurückzukehren?


Alle neuen Aktivitäten / Intents haben standardmäßig das vorherige / vorherige Verhalten, es sei denn, Sie haben für die aufrufende Aktivität ein finish() programmiert.


Android-Aktivitäten werden im Aktivitätsstapel gespeichert. Zurück zu einer vorherigen Aktivität könnte zwei Dinge bedeuten.

  1. Sie haben die neue Aktivität aus einer anderen Aktivität mit startActivityForResult geöffnet . In diesem Fall können Sie einfach die Funktion finishActivity () aus Ihrem Code aufrufen, und Sie gelangen zurück zur vorherigen Aktivität.

  2. Verfolgen Sie den Aktivitätsstapel. Wenn Sie eine neue Aktivität mit einer Absicht starten, können Sie eine Absichtskennung wie FLAG_ACTIVITY_REORDER_TO_FRONT oder FLAG_ACTIVITY_PREVIOUS_IS_TOP . Sie können dies verwenden, um zwischen den Aktivitäten in Ihrer Anwendung zu wechseln. Hab sie aber nicht oft benutzt. Schau dir die Flaggen hier an: http://developer.android.com/reference/android/content/Intent.html

Wie in den Kommentaren erwähnt, wenn die Aktivität mit startActivity() geöffnet wird, kann man sie mit finish() . Wenn Sie die Schaltfläche "Nach oben" verwenden möchten, können Sie diese in der onOptionsSelected(MenuItem item) abfangen, indem Sie die ID des Elements gegen android.R.id.home Gegensatz zu R.id.home wie in den Kommentaren erwähnt.


Habe das gleiche Problem und

finish();  OR super.onBackPressed();

funktionierte gut für mich, beide arbeiteten gleich, aber kein Glück mit der return


Ich empfehle die NavUtils.navigateUpFromSameTask (), es ist einfach und sehr einfach, Sie können es von der Google-Entwickler lernen.Wünschte, ich könnte Ihnen helfen!


Neben all den erwähnten Antworten, ist dies immer noch ein alternativer Weg, sagen wir, Sie haben zwei Klassen, Klasse A und Klasse B.

Klasse A Sie haben einige Aktivitäten wie Checkbox ausgewählt, einige Daten und Absicht zu Klasse B ausgedruckt. Klasse B, möchten Sie mehrere Werte an Klasse A übergeben und den vorherigen Zustand der Klasse A beibehalten, können Sie diese Alternative ausprobieren Methode oder Download Quellcode, um dies zu demonstrieren

http://whats-online.info/science-and-tutorials/125/Android-maintain-the-previous-state-of-activity-on-intent/

oder

http://developer.android.com/reference/android/content/Intent.html


Nur das

super.onBackPressed();

Schreib einfach auf click finish () . Es bringt Sie zur vorherigen Aktivität.



Starten Sie die zweite Aktivität mit intent (verwenden Sie entweder startActivity oder startActivityForResult gemäß Ihren Anforderungen). Wenn der Benutzer nun die Zurück-Taste drückt, wird die aktuelle Aktivität oben geschlossen und die vorherige wird angezeigt.

Nun sagen wir, Sie haben zwei Aktivitäten, eine für die Auswahl einiger Einstellungen für den Benutzer, wie Sprache, Land usw., und nach der Auswahl klickt der Benutzer auf Weiter, um zum Anmeldeformular zu gelangen (zum Beispiel). Wenn die Anmeldung nicht erfolgreich war, wird der Benutzer die Anmeldeaktivität durchführen. Was ist, wenn die Anmeldung erfolgreich war?

Wenn die Anmeldung erfolgreich ist, müssen Sie eine andere Aktivität starten. Es bedeutet, dass eine dritte Aktivität gestartet wird und immer noch zwei Aktivitäten ausgeführt werden. In diesem Fall startActivityForResult es sich, startActivityForResult zu verwenden. Wenn die Anmeldung erfolgreich war, senden Sie die OK-Daten an die erste Aktivität zurück und schließen Sie die Anmeldeaktivität. Wenn die Daten empfangen wurden, starten Sie die dritte Aktivität und schließen Sie die erste Aktivität mit finish.


Versuchen Sie Activity#finish() . Das ist mehr oder weniger das, was die Zurück-Schaltfläche standardmäßig tut.


Wenn Sie die Datei AndroidManifest.xml mit der übergeordneten Aktivität ordnungsgemäß eingerichtet haben, können Sie Folgendes verwenden:

NavUtils.navigateUpFromSameTask(this);

Wo das ist deine Kinderaktivität.


Wenn du nur zur vorherigen Aktivität gehen willst, benutze

finish();

ODER

onBackPressed();

Wenn du zur zweiten Aktivität oder darunter gehen willst, benutze folgendes:

intent = new Intent(MyFourthActivity.this , MySecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//Bundle is optional
Bundle bundle = new Bundle();
bundle.putString("MyValue1", val1);
intent.putExtras(bundle);
//end Bundle
startActivity(intent);

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
      int id = item.getItemId();

      if ( id == android.R.id.home ) {
          finish();
          return true;
      }

      return super.onOptionsItemSelected(item);
 }

Probieren Sie es aus, es funktioniert sowohl auf der Symbolleiste Zurück als Hardware-Schaltfläche zurück .


@Override
public void onBackPressed() {
    super.onBackPressed();
}

und wenn Sie auf Knopf klicken möchten, gehen Sie zurück und dann einfach

bbsubmit.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        onBackPressed();
    }
});




android-activity