Android获得之前的活动

时间:2011-11-14 09:30:24

标签: android android-activity

我有2项活动:Activity1Activity2。 在每个活动中都有一个按钮,可以引导我进行第三项活动(MainActivity)。在MainActivity我想知道从哪个活动页面调用。

5 个答案:

答案 0 :(得分:47)

您可以使用Intent的putExtra属性来传递Activity的名称。

致电活动,

Intent intent = new Intent(this, Next.class);
intent.putExtra("activity","first");
startActivity(intent);

下一个活动,

Intent intent = getIntent();
String activity = intent.getStringExtra("activity");

现在,在字符串活动中,您将获得其来自哪个活动的名称。

答案 1 :(得分:15)

您可以使用:

public ComponentName getCallingActivity()

知道哪个活动名为您当前的Activity

答案 2 :(得分:6)

使用putExtra()识别以前的活动。

Intent i = new Intent(Activity1.this, MainActivity.class).putExtra("from", "activity1");
startActivity(i);

检查主要活动中的活动

if(getIntent().getStringExtra("from").equals("activity1")){
//From Activity 1
}else {
// Activity 2
}

答案 3 :(得分:0)

当您从一个活动移动到另一个活动时,您可以传递下面给出的活动名称

Intent i = new Intent(this, deliveries.class);
i.putExtra("ActivityName", "ActivityOne");
startActivity(i);

并检查其他活动中的活动名称

Bundle extra = getIntent().getExtras();
String activityName = Long.parseLong(extra.getSerializable("ActivityName")
toString());

我认为它可以解决您的问题

答案 4 :(得分:0)

当您开始活动时:

Intent intent = new Intent(activity, HistoryDetailsResults.class);
 intent.putExtra(Activity.ACTIVITY_SERVICE, activity.getLocalClassName());
 activity.startActivity(intent);

使用Activity.ACTIVITY_SERVICE我假设你使用了一个好习惯。 (Activity.ACTIVITY_SERVICEString'活动'

activity.getLocalClassName()将此 view.YourActivity 设为String

编辑:我更喜欢使用activity.getLocalClassName()

而不是使用活动activity.getClass().getSimpleName()

开始活动中的第1步

Intent intent = new Intent(activity, HistoryDetailsResults.class);
 intent.putExtra(Activity.ACTIVITY_SERVICE, activity.getClass().getSimpleName());
 activity.startActivity(intent);

目的地活动中的第2步

Intent intent = getIntent();
String startActivity = intent.getStringExtra(Activity.ACTIVITY_SERVICE)
String activityToCompare = YourActivityToCompare.class.getSimpleName()

你想做什么:

if( startActivity.equalsIgnoreCase(activityToCompare) {
    //Do what you want
}