如何在子活动中获取名称父活动

edi*_*233 3 android

如何在子活动中获取父活动的名称.我有两个活动,我可以开始相同的活动.为了更好地理解:我有活动一,二,三.从活动ONE我可以开始活动三,从活动二我可以开始活动三.现在我有一个问题.如何进入活动三,父母活动的名称.所以,当我从活动ONE开始活动三,我怎么能得到这些信息.我想实现简单的循环if(),我将对象添加到ArrayList,因为哪个活动启动我的活动三.我怎么能这样做?

Vya*_*kin 5

像这样的东西

FirstActivity:

     Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
     intent.putExtra(Consts.PARENT_ACTIVITY_NAME, "ONE");
     ...
     startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

SecondActivity:

     Intent intent = getIntent();
     String parentName = intent.getStringExtra(Consts.EPARENT_ACTIVITY_NAME;
     if(parentName.equals(...)){ 
        ....
     }
Run Code Online (Sandbox Code Playgroud)

但在我看来,最好不要使用活动的名称.稍后你会想要更改类的名称,添加新的等等.你将不得不进行大量的编辑,代码很难维护.最好进入操作模式,所有其他活动都会使您的活动进入特定模式.所以:

FirstActivity:

     Intent intent = new Intent(FirstActivity.this, SomeActivity.class);
     intent.putExtra(Consts.PARENT_ACTIVITY_MODE, TwoActivity.MODE_EDIT);
     ...
     startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

SecondActivity:

     Intent intent = new Intent(SecondActivity.this, SomeActivity.class);
     intent.putExtra(Consts.PARENT_ACTIVITY_MODE, TwoActivity.MODE_DELETE);
     ...
     startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

ThirdActivity:

     Intent intent = new Intent(ThirdActivity.this, SomeActivity.class);
     intent.putExtra(Consts.PARENT_ACTIVITY_MODE, TwoActivity.MODE_COPY);
     ...
     startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

一些活动:

     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;
     }
Run Code Online (Sandbox Code Playgroud)