2012-03-27 164 views
3

如何獲得兒童活動中父活動的名稱。我有兩項活動可以開始同一項活動。爲了更好的理解:我有活動一,二,三。從活動一我可以開始活動三,從活動二我可以開始活動三。現在我有一個問題。我如何獲得活動三,父母活動的名稱。因此,當我從活動一開始活動三時,我如何獲得這些信息。我想實現簡單的循環if(),我將對象添加到ArrayList,因爲哪些活動啓動了我的活動三。我該怎麼做?如何在兒童活動中獲取姓名父活動

+0

http://stackoverflow.com/問題/ 3410295 /精母 - 當前活動功能於Android的 – Prem 2012-03-27 08:45:48

+0

如果您使用的是Android的':在清單parentActivityName'屬性,那麼這個答案可以幫助:http://stackoverflow.com/a/38088425/1617737。 – 2016-06-29 08:06:42

回答

4

像這樣

FirstActivity:

 Intent intent = new Intent(FirstActivity.this, SecondActivity.class); 
    intent.putExtra(Consts.PARENT_ACTIVITY_NAME, "ONE"); 
    ... 
    startActivity(intent); 

SecondActivity:

 Intent intent = getIntent(); 
    String parentName = intent.getStringExtra(Consts.EPARENT_ACTIVITY_NAME; 
    if(parentName.equals(...)){ 
     .... 
    } 

但在我看來,最好不要使用活動的名稱。稍後,您需要更改類的名稱,添加新的等等。您將不得不進行大量編輯,代碼難以維護。最好進入操作模式,所有其他活動都會使您的活動進入特定模式。 所以:

FirstActivity:

 Intent intent = new Intent(FirstActivity.this, SomeActivity.class); 
    intent.putExtra(Consts.PARENT_ACTIVITY_MODE, TwoActivity.MODE_EDIT); 
    ... 
    startActivity(intent); 

SecondActivity:

 Intent intent = new Intent(SecondActivity.this, SomeActivity.class); 
    intent.putExtra(Consts.PARENT_ACTIVITY_MODE, TwoActivity.MODE_DELETE); 
    ... 
    startActivity(intent); 

ThirdActivity:

 Intent intent = new Intent(ThirdActivity.this, SomeActivity.class); 
    intent.putExtra(Consts.PARENT_ACTIVITY_MODE, TwoActivity.MODE_COPY); 
    ... 
    startActivity(intent); 

一些活動:

 Intent intent = getIntent(); 
    int mode = intent.getIntExtra(Consts.EPARENT_ACTIVITY_MODE); 
    switch(mode){ 
     case MODE_EDIT: 
       .... 
       break; 
     case MODE_DELETE: 
       .... 
       break; 
     case MODE_COPY: 
       .... 
       break; 
    } 
1

只是passs可識別一塊在意向數據...

1

把你Actvity名意圖,並通過它......但從來沒有嘗試用它來更新UI或東西,因爲它的在暫停狀態..它會拋出異常..

3

你應該把一個額外的意圖,是啓動這三項活動。

intent.putExtra("prevActivity", "ONE"); 

當讀做:

getIntent().getStringExtra("prevActivity"); 
2

一個簡單的方法來做到這將是一個上下文元素添加到您的意圖和活動的傳遞名

Intent in = new Intent(One.this, Three.class); 
in.putExtra("activity", "One"); 
startActivity(in); 

,然後在Three活動

this.getIntent().getExtras().getString("activity"); 
0

您可以通過創建InterfaceDiscused here完成你的任務,或者你可以通過putExtra作爲

Intent intent = new Intent(FirstActivity.this, SecondActivity.class); 
    intent.putExtra("PARENT_ACTIVITY_NAME", "ThisActivityName"); 
    startActivity(intent); 

做的工作,然後在孩子收到這樣

String parentActivityName = intent.getStringExtra("PARENT_ACTIVITY_NAME"); 
相關問題