如何在儿童活动中获取姓名父活动

问题描述:

如何获得儿童活动中父活动的名称。我有两项活动可以开始同一项活动。为了更好的理解:我有活动一,二,三。从活动一我可以开始活动三,从活动二我可以开始活动三。现在我有一个问题。我如何获得活动三,父母活动的名称。因此,当我从活动一开始活动三时,我如何获得这些信息。我想实现简单的循环if(),我将对象添加到ArrayList,因为哪些活动启动了我的活动三。我该怎么做?如何在儿童活动中获取姓名父活动

+0

http://*.com/问题/ 3410295 /精母 - 当前活动功能于Android的 – Prem 2012-03-27 08:45:48

+0

如果您使用的是Android的':在清单parentActivityName'属性,那么这个答案可以帮助:http://*.com/a/38088425/1617737。 – 2016-06-29 08:06:42

像这样

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; 
    } 

只是passs可识别一块在意向数据...

把你Actvity名意图,并通过它......但从来没有尝试用它来更新UI或东西,因为它的在暂停状态..它会抛出异常..

你应该把一个额外的意图,是启动这三项活动。

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

当读做:

getIntent().getStringExtra("prevActivity"); 

一个简单的方法来做到这将是一个上下文元素添加到您的意图和活动的传递名

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

,然后在Three活动

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

您可以通过创建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");