在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之前所说的,这还不够清楚。给我们更多的信息,我们会尽力帮助你。另外,你为什么用数字而不是名字来称呼这些活动?