我正在尝试根据一些用户输入在一个Activity之间移动。
我正在尝试使用:
String myClass = "some_user_input.class"
Intent myIntent = new Intent(getApplicationContext(), myClass);
startActivity(myIntent);
......从一项活动转移到另一项活动。
我可以这样做,我直接在硬代码中引用我的新活动,不要尝试从文本中编译它(即classA.class),但是我希望能够通过传递它来构建我的Intent用户编译的一些字符串。
例如,如果用户在编辑文本中输入B,我想转到classB.class
如果用户输入Z,我想转到classZ.class
。
有没有什么方法可以编译我想要使用字符串的类然后转换为类?
提前致谢!
答案 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);