0

我创建了一个 Listview 表单,我想为特定类触发意图。这里var:position是我单击的 ListView 行的位置。无论同一个包中的所有活动和正确名称如何,我都会收到 ClassNotFoundException。

String[] slideMenuOptions = {"CarGallery.class","connectus.class","BookService.class"};
String str = slideMenuOptions[position];
Class <?> c = Class.forName(str);
Intent intent = new Intent(context,c);
context.startActivity(intent);
4

2 回答 2

0

使用不带 .class 的类的全名来获取类名并启动下一个活动:

String[] slideMenuOptions = {"xx.xxx.CarGallery",
                             "xx.xxx.connectus",
                             "xx.xxx.BookService"};
String str = slideMenuOptions[position];
Class <?> c = Class.forName(str);
Intent intent = new Intent(context,c);
context.startActivity(intent);

广告确保您已在androidmanifest.xml文件中声明所有活动

于 2013-01-31T19:48:48.117 回答
0
您需要提供完整的合格班级名称。
例如,如果您的 CarGallery.class 具有包
,那么您应该提供 CarGaller 类以及包名称。
com.tech.CarGaller。
我使用了以下代码。它对我来说很好。如果您有任何问题,请告诉我。

/*String[] slideMenuOptions = {"com.tech.CarGallery","com.tech.connectus","com.tech.BookService"};*/
String[] slideMenuOptions = {"xx.xxx.CarGallery"," xx.xxx.connectus","xx.xxx.BookService"};
字符串 str = slideMenuOptions[1];
类 c = Class.forName(str);
System.out.println("获取类名"+c.getName());
意图意图=新意图(上下文,c);
context.startActivity(intent);
于 2013-01-31T20:31:51.637 回答