与类名一起使用时意图不按预期工作

时间:2012-12-28 14:57:36

标签: java android android-intent

我有以下代码,在名为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();
    }

}

4 个答案:

答案 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输出吗?