Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android将意图与class.forName一起使用_Java_Android_Android Intent - Fatal编程技术网

Java android将意图与class.forName一起使用

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

我有ArrayList中类的字符串名称

如果我试着这样称呼意图:

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中的新版本。它每次找到一个类都会爆炸。