在Android活动中使用变量作为类名

在Android活动中使用变量作为类名,android,android-activity,Android,Android Activity,我必须开始使用一些变量作为类名的活动。有解决办法吗 public void something(int position) { someVar = "MyActivity"+position; startActivity(new Intent(Main.this,someVar.class)); } 实际上,您并不需要开始的活动的类。您可以使用setClassName: Intent i = new Intent(); i.setClassName(thi

我必须开始使用一些变量作为类名的活动。有解决办法吗

public void something(int position) {

        someVar = "MyActivity"+position;

        startActivity(new Intent(Main.this,someVar.class));

}

实际上,您并不需要开始的活动的
类。您可以使用
setClassName

Intent i = new Intent();
i.setClassName(this, "MyActivity" + position);
startActivity(i);

如果没有太多活动,您可以始终执行以下操作:

Class myclass;

Switch(position){

    case 1:
        myclass = Activity1.class;
        break;
    case 2:
        myclass = Activity2.class;
        break;
    case 3:
        myclass = Activity3.class;
        break;
}

startActivity(new Intent(Main.this,myclass));

您可以使用反射来获取类类型。只需确保在字符串中包含包名

public void something(int position) throws ClassNotFoundException {

  Class<?> theClass = Class.forName("com.example.Activity" + position);

  startActivity(new Intent(this, theClass));

}
public void something(int位置)抛出ClassNotFoundException{
Class theClass=Class.forName(“com.example.Activity”+位置);
startActivity(新意图(本课程));
}

不清楚能否详细说明我正在向名为某物的方法传递一个整数,并且我的活动的名称有
MyActivity1
MyActivity2
等。因此,在传递整数值时,我要启动活动。例如,在传递整数1时,我希望启动“活动”
MyActivity1
我正在使用“活动帮助”。当我想进入主要活动时,它崩溃了。我错过什么了吗?再次感谢您。
Intent i=newintent();i.setClassName(本“主”);星触觉(i)您可能需要一个操作和/或一个类别,或者将它们放在一个数组中,作为解决方案之一。但对于我提出的问题,没有确切的解决办法。有时我可能需要处理
字符串变量
,比如:
字符串
+position正如@Raghunandan之前所说的,这还不够清楚。给我们更多的信息,我们会尽力帮助你。另外,你为什么用数字而不是名字来称呼这些活动?