将字符串转换为类

时间:2010-12-11 18:52:54

标签: java android string class

我正在尝试根据一些用户输入在一个Activity之间移动。

我正在尝试使用:

String myClass = "some_user_input.class"
Intent myIntent = new Intent(getApplicationContext(), myClass);
startActivity(myIntent);

......从一项活动转移到另一项活动。

我可以这样做,我直接在硬代码中引用我的新活动,不要尝试从文本中编译它(即classA.class),但是我希望能够通过传递它来构建我的Intent用户编译的一些字符串。

例如,如果用户在编辑文本中输入B,我想转到classB.class 如果用户输入Z,我想转到classZ.class

有没有什么方法可以编译我想要使用字符串的类然后转换为类?

提前致谢!

2 个答案:

答案 0 :(得分:5)

反射机制允许你这样做:

String myClass = "some_user_input";
Class<?> clazz = Class.forName(myClass);
Intent myIntent = new Intent(getApplicationContext(), clazz);

请注意,这些类应包含在android清单XML中。

另请注意,我没有在此示例中处理异常:)

答案 1 :(得分:0)

这是我使用Class.forName()方法的解决方案:

String myClass = "foo.class";
Intent i = new Intent(getApplicationContext(), Class.forName(myClass));
startActivity(i);