如何获取任何已启动活动的呼叫活动名称?

时间:2017-05-11 16:50:21

标签: java android android-intent

我的申请中有四项活动。

按前三个活动的按钮导致第四个活动。我用它来开始第四项活动。

在第四项活动中。我有一个文本视图哪个更改其文本如下: -

如果活动4由活动1启动:文本更改为0。 如果活动4由活动2启动:文本更改为1。 如果活动4由活动3启动:文本更改为2。

我声明了这样的意图 对于第一活动

Intent intent = new Intent(this, Main4Activity.class);
intent.putExtra("callingActivity",0);
startActivity(intent);

第二个活动

 Intent intent = new Intent(this, Main4Activity.class);
   intent.putExtra("callingActivity",1);
   startActivity(intent);

第三次活动

Intent intent = new Intent(this, Main4Activity.class);
intent.putExtra("callingActivity",2);
startActivity(intent);

在第四活动中,要获取数据,我使用了这样的意图......:

  public int checkCallingActivity() {
            int callingActivity;
            callingActivity = getIntent().getIntExtra("callingActivity", 7);
            return callingActivity;
        }

但是当我运行程序并从活动1,2或3中调用活动4时,它不会采用意图值。在这种情况下,默认值为7。代码中的逻辑错误是什么以及如何解决它?

2 个答案:

答案 0 :(得分:0)

更改此行:

callingActivity = getIntent().getIntExtra("callingActivity", 7);

使用:

callingActivity = getIntent().getIntExtra("callingActivity", 0);

希望它有所帮助。

答案 1 :(得分:0)

Main4Activity's onCreate()方法中,试试这个:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ............
    ...................

    int callingActivity = 0;
    Bundle bundle = getIntent().getExtras();

    if (bundle != null) {
        callingActivity = bundle.getInt("callingActivity");
    }

    textView.setText(String.valueOf(callingActivity));
}