我有以下代码,在名为Menu的类中,它从ListActivity扩展而来。 当我点击listitem时,Toast行正在正确执行,但之后没有任何反应,我想catch块中的代码正在执行,而Intent部分正在抛出一些异常。你觉得这个定义有什么问题吗?
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
try {
Toast.makeText(Menu.this, "Clicked!!", 5000).show();
Class myClass = Class.forName("com.palye.first.MainActivity");
Intent menuI = new Intent(Menu.this, myClass);
startActivity(menuI);
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
有时
Class myClass = Class.forName("com.example.first.MainActivity");
是不够的,因为它不会加载该类。我需要做一个myClass.newInstance()
;而且使用myClass
,即使我没有使用创建的对象。
尝试一下,也许它会解决你的问题。
答案 1 :(得分:1)
你知道你是否拥有你可以创建明确意图的活动:
Intent intent = new Intent(Menu.this, MainActivity.class);
那么你不需要try catch
答案 2 :(得分:0)
在某个地方,我看到一些软件包名称被排除在加载,部署,忘记哪些软件包之外。我记得一个是" android"另一个是"内部"或"示例" 。因为我正在切换/混合iOS / Android / Java EE,我不确定哪里不允许以及哪一个。
尝试重命名/重构" example
"到" my
"包,也许它会解决。对于Android Market,肯定不允许使用" example
"
答案 3 :(得分:0)
为什么不试试MainActivity.class
?例如,Intent menuI = new Intent(Menu.this, MainActivity.class);
你可以发布logcat输出吗?