我有一系列的类,如下所示:
private static final Class[] testerClasses={
Tester1.class
};我需要它是这样的,这样我就可以启动Android的意图,就像这样:
intent =new Intent(this,testerClasses[0]);
startActivity(intent);我想弄清楚怎么做下面的事,我真的很想弄清楚怎么做.
我为什么要这么做?有时我想像调用意图一样调用函数,而另一些时候,我只是想获取有关意图的数据,而不必调用它。我的abstractTester类(所有具体的测试人员类都继承自它)包含了一些东西,比如测试的名称,这在意图开始之前就已经很方便了。
谢谢你的帮助!
发布于 2012-12-05 22:55:03
正确的解决办法是:
private static final abstractTester[] testerClasses={
new Tester1()
};
intent =new Intent(this,testerClasses[0].getClass());
startActivity(intent);如果我需要参考这门课,我可以这么做。就像一种魅力!
发布于 2012-12-05 21:45:51
您将无法通过Intent传递类对象。相反,在意图中传递类名;接收方可以通过loadClass()获取类。
一旦接收方拥有了类对象,它就可以使用反射来调用预期的方法。
发布于 2012-12-05 21:51:10
嗨,你可以试着用下面的代码,
ArrayList<Class<?>> a = new ArrayList<Class<?>>();
a.add(MainActivity2.class);
a.add(MainActivity.class);
Intent intent =new Intent(this,a.get(0));
startActivity(intent);https://stackoverflow.com/questions/13732921
复制相似问题