Java android将意图与class.forName一起使用
我有ArrayList中类的字符串名称 如果我试着这样称呼意图:Java android将意图与class.forName一起使用,java,android,android-intent,Java,Android,Android Intent,我有ArrayList中类的字符串名称 如果我试着这样称呼意图: Intent intent = new Intent(context, MultipleChoice.class); context.startActivity(intent); 它可以正常工作,但是当我想这样做时,我会得到一个ClassFoundException。 在config.getTests(config.getPage())中,我得到返回的“multipleechoice” t
Intent intent = new Intent(context, MultipleChoice.class);
context.startActivity(intent);
它可以正常工作,但是当我想这样做时,我会得到一个ClassFoundException
。
在config.getTests(config.getPage())
中,我得到返回的“multipleechoice”
try {
Intent intent = new Intent(context, Class.forName(config.getTests(config.getPage())));
context.startActivity(intent);
context.finish();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
为什么会这样?我认为
config.getTests(..)
应该使用包来命名类,例如com.xyz.multipleechoice
。您可以先在Class.forName(…)
中对其进行硬编码。如果它有效,那么您可以找到一种方法从config.getTest(..)
获取它,我认为config.getTests(..)
应该使用包来命名,例如com.xyz.multipleechoice
。您可以先在Class.forName(…)
中对其进行硬编码。如果它能工作,那么您可以找到一种方法从config.getTest(..)
获取它。我希望您得到的错误是ClassNotFoundException,而不是ClassFoundException。我认为config.getTests(..)应该使用包来命名类名,例如com.xyz.multipleechoice。您可以先在Class.forName(..)中尝试硬编码。如果它有效,那么您可以找到一种从config.getTest(..)bla.bla.bla.full.name.with.package.is.needed.multipleechoice获取它的方法。。。编辑:该死的,你想。。。你是第一个:)我把它作为答案贴了出来。请接受它在java 1.7中的新版本。每次找到类时,它都会爆炸。我希望您得到的错误是ClassNotFoundException,而不是ClassFoundException。我认为config.getTests(..)应该使用包命名类,例如com.xyz.multipleEchoice。您可以先在Class.forName(..)中尝试硬编码。如果它有效,那么您可以找到一种从config.getTest(..)bla.bla.bla.full.name.with.package.is.needed.multipleechoice获取它的方法。。。编辑:该死的,你想。。。你是第一个:)我把它作为答案贴了出来。请接受它在java 1.7中的新版本。它每次找到一个类都会爆炸。