Android - 启动意图问题
当我想开始新活动时,我使用以下代码:
Intent myIntent1 = new Intent(this, Info1.class);
startActivity(myIntent1);
但是,如果我从字符串数组中获取类名呢?我尝试过这样的方法 class.forName :
Intent intent = new Intent(this, Class.forName(array[1]));
startActivity(intent);
但没有成功。它给了我错误
java.lang.ClassNotFoundException:加载程序中的 Info1 dalvik.system.PathClassLoader
即使在第一种情况下它成功启动了一个活动。我必须补充一点,我 100% 确定 array[1] 包含字符串“Info1”,并且我的包中有 Info1.class。
你知道,如何解决这个问题吗?
Whenewer I want to start new activity, I use this code:
Intent myIntent1 = new Intent(this, Info1.class);
startActivity(myIntent1);
But, what about the case, I am getting class name from String Array? I have tried method class.forName like this:
Intent intent = new Intent(this, Class.forName(array[1]));
startActivity(intent);
But no success. It is giving me error of
java.lang.ClassNotFoundException: Info1 in loader
dalvik.system.PathClassLoader
even though in first case it started an activity successfully. I have to add that I am 100% sure array[1] contains string "Info1" and that I have Info1.class in my package.
Do you know, how to solve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
该方法
需要完全限定名称,这意味着您应该提供名称以及包详细信息(类存在于哪个包中)
作为示例
此处参考文档
The method
Needs fully qualified name which means you should give the name along with the package details(in which package the class exists)
as an example
Documentation Reference here
您需要将完整的包名称添加到 class.forName 参数中,例如 ple 而不是 array[1]。
You need to add the full package name to your class.forName parameter, like ple instead of array[1].
请尝试以下操作:
Try the following: