我有2项活动:Activity1
和Activity2
。
在每个活动中都有一个按钮,可以引导我进行第三项活动(MainActivity
)。在MainActivity
我想知道从哪个活动页面调用。
答案 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_SERVICE
是String
:'活动' )
activity.getLocalClassName()
将此 view.YourActivity 设为String
编辑:我更喜欢使用activity.getLocalClassName()
activity.getClass().getSimpleName()
Intent intent = new Intent(activity, HistoryDetailsResults.class);
intent.putExtra(Activity.ACTIVITY_SERVICE, activity.getClass().getSimpleName());
activity.startActivity(intent);
Intent intent = getIntent();
String startActivity = intent.getStringExtra(Activity.ACTIVITY_SERVICE)
String activityToCompare = YourActivityToCompare.class.getSimpleName()
你想做什么:
if( startActivity.equalsIgnoreCase(activityToCompare) {
//Do what you want
}