Java 基于字符串启动意图

Java 基于字符串启动意图,java,android,Java,Android,是否可以基于字符串获取类名。比如说 String activityName = "Activity"; Intent i = new Intent(context, ...); 如何将字符串转换为调用activity类,如 Intent i = new Intent(context, Activity.class); 像这样试试 String activityName ="com.project.net.Activity";// provide the class name with do

是否可以基于字符串获取类名。比如说

String activityName = "Activity";
Intent i  = new Intent(context, ...);
如何将字符串转换为调用activity类,如

Intent i = new Intent(context, Activity.class);
像这样试试

String activityName ="com.project.net.Activity";// provide the class name with domain 
Intent i= new Intent( context, Class.forName(activityName));
startActivity(i);

这是很有可能的。首先,您必须使用
活动的全名,而不是文件名,例如
com.package.activity

String className = "com.package.Activity";
Activity myActivity = (Activity) myClass.newInstance();
然后您可以使用该名称创建一个
,如下所示:

Class<?> myClass = Class.forName(className);

你应该看看,Java中有类似的东西吗?参见Intent#setComponent(ComponentName)或者你可以使用隐式Intent并创建新的Intent,如下所示:
newintent(action\u string)