2016-10-21 3 views
-2

Ich habe Aktivitäten A, B, C, D. In einer Aktivität Ich habe Liste mit einigen Daten. Ich rief sie A-> B-> C-> D und wenn ich Bestätigungstaste auf D-Aktivität geklickt muss ich gehen zu A. verwende ich diesen Code dafür:Null Daten wieder aufgenommen Aktivität

Intent intent = new Intent(D.this,A.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 

Und wenn Aktivität A genannt, meine Liste ist Null. Ich versuche, onSavedInstanceState zu verwenden, aber es ist auch null. Wie kann ich das tun?

+0

Versuchen Sie, startActivityForResult anstelle von startActivity zu verwenden. – Piyush

Antwort

0

Dies liegt daran, die A Activity neu erstellt wird. Sie können es von verschiedenen Möglichkeiten:

  • Anruf finish() Methode auf Activity s D -> C -> B und dann Activity Ein Pop-up.

  • Übergeben Sie die Liste von Activity A nach B -> C -> D, und dann passieren wieder an die Activity A.

Hoffe, es hilft!

1
**Solution 1.** 
    Intent intent = new Intent(D.this,A.class);  
    startActivity(intent); 
    finishAffinity(); 
Here "finishAffinity" will close all the activity and will create activity A. 

**Solution 2.** 
Intent intent = new Intent(D.this,A.class); 

     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
     intent.putExtra("reloadHome", true); 
     startActivity(intent); 
     finish(); 

Check value on A activity to override "onNewIntent" 
If you will pass any value from activity D to A you can get that data into "onNewIntent" method. in this scenario. 

@Override 
    protected void onNewIntent(Intent intent) { 
     super.onNewIntent(intent); 
    } 
Verwandte Themen