Android:如何在一个意图内将一个活动作为额外活动传递?
我需要启动一个活动,告诉用户在填写表单后必须启动什么活动 我试过这个,它似乎是正确的Android:如何在一个意图内将一个活动作为额外活动传递?,android,android-intent,data-extraction,Android,Android Intent,Data Extraction,我需要启动一个活动,告诉用户在填写表单后必须启动什么活动 我试过这个,它似乎是正确的 new Intent(this, Activity1.class) .putExtra("myActivity", Activity2.class); 如果我必须让它再上一堂课,我会做的 new Intent(this, Activity1.class) .putExtra("myActivity", AnotherActivity.class); 这条路对吗 在Activity1中,我
new Intent(this, Activity1.class)
.putExtra("myActivity", Activity2.class);
如果我必须让它再上一堂课,我会做的
new Intent(this, Activity1.class)
.putExtra("myActivity", AnotherActivity.class);
这条路对吗
在Activity1中,我应该如何获得.class type的额外参数?为什么要启动一个activity,而inturn会启动其他activity。相反,使用if或switch条件直接启动不同的活动 创建以下类
public void startinent(c类){
startActivity(新意图)(youActivity.this,c)
}
为什么您希望启动一个活动,而该活动会启动其他活动。相反,请使用“如果”或“切换条件”直接启动不同的活动
创建以下类
public void startinent(c类){
startActivity(新意图)(youActivity.this,c)
}
尝试以下示例代码:
private static final int LAUNCH_A = 100;
private static final int LAUNCH_B = 200;
//launch activity here with extras to decide which other activity to launch next
Intent intent = new Intent(this, Activity1.class);
//Now decide here, which activity you want to launch in the next one
if(shouldLaunchA){
intent.putExtra("LAUNCH_TARGET", LAUNCH_A);
}else{
intent.putExtra("LAUNCH_TARGET", LAUNCH_B);
}
startActivity(intent);
现在,在您的活动1中,您可以获得额外功能并打开它们:
Intent intent = getIntent();
// you could place this as a class level variable:
int launchTarget = intent.getExtras().getInt("LAUNCH_TARGET");
switch(launchTarget){
case 100:
//Launch activity A
break;
case 200:
//launch activity B
break;
}
这就是你所需要的一切,让这个工作
正如我在上面所暗示的,您应该将launchTarget
变量设置为类级变量,以便用户在EditText
字段中输入数据并单击按钮提交后,您可以访问它
祝您好运,如果您需要进一步帮助,请告诉我!尝试以下示例代码:
private static final int LAUNCH_A = 100;
private static final int LAUNCH_B = 200;
//launch activity here with extras to decide which other activity to launch next
Intent intent = new Intent(this, Activity1.class);
//Now decide here, which activity you want to launch in the next one
if(shouldLaunchA){
intent.putExtra("LAUNCH_TARGET", LAUNCH_A);
}else{
intent.putExtra("LAUNCH_TARGET", LAUNCH_B);
}
startActivity(intent);
现在,在您的活动1中,您可以获得额外功能并打开它们:
Intent intent = getIntent();
// you could place this as a class level variable:
int launchTarget = intent.getExtras().getInt("LAUNCH_TARGET");
switch(launchTarget){
case 100:
//Launch activity A
break;
case 200:
//launch activity B
break;
}
这就是你所需要的一切,让这个工作
正如我在上面所暗示的,您应该将launchTarget
变量设置为类级变量,以便用户在EditText
字段中输入数据并单击按钮提交后,您可以访问它
祝你好运,如果你需要进一步的帮助,请告诉我!将活动名称与包一起传递,然后通过反射获得所需的类 传递数据:
new Intent(this, Activity1.class)
.putExtra("myActivity", "com.mypackage.activity.Activity2");
获取所需的活动:
String desiredActivityName = getIntent().getExtras().getString("myActivity");
Class<? extends Activity> targetActivity = Class.forName(desiredActivityName).asSubclass(Activity.class);
Intent launchIntent = new Intent(this, targetActivity);
String desiredActivityName=getIntent().getExtras().getString(“myActivity”);
Class将活动的名称与包一起传递,然后通过反射获得所需的类
传递数据:
new Intent(this, Activity1.class)
.putExtra("myActivity", "com.mypackage.activity.Activity2");
获取所需的活动:
String desiredActivityName = getIntent().getExtras().getString("myActivity");
Class<? extends Activity> targetActivity = Class.forName(desiredActivityName).asSubclass(Activity.class);
Intent launchIntent = new Intent(this, targetActivity);
String desiredActivityName=getIntent().getExtras().getString(“myActivity”);
ClassYou不这样做;传递一个像字符串“ActivityB”一样的唯一值或者C或整数,比如1,2,3,然后在你得到额外的信息时切换,以知道要启动哪个活动!你是对的,但这似乎是避免切换部分的一种方法。你需要从中选择多少活动?也许从那里我可以帮你实际上有两个活动应该很容易;让我在下面给出一个答案,让你尝试;你不需要这样做传递一个唯一的值,如字符串“ActivityB”或者C或整数,比如1,2,3,然后在你得到额外的信息时切换,以知道要启动哪个活动!你是对的,但这似乎是避免切换部分的一种方法。你需要从中选择多少活动?也许从那里我可以帮上忙实际上有两个活动应该很容易;让我在下面给出一个答案,让你尝试;是的,我可以创建一个类,其中我将在Activity1完成任务后需要启动的类对象设置为完成任务,然后这将从同一个类中获取。是的,我可以创建一个类,其中我将在Activity1完成任务后需要启动的类对象设置为完成任务,然后这将从同一个类中获取。这是正确答案,但使用enum可能会“类枚举{OPEN_A,OPEN_B;}”枚举可能非常昂贵though@Eenvicible你能详细说明一下吗?这是正确的答案,但使用enum可能更干净。“类enum{OPEN_A,OPEN_B;}”枚举可能非常昂贵though@Eenvicible你能详细说明一下吗?看看这个