2

我在从 ListActivity 扩展的名为 Menu 的类中有以下代码。当我单击 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

4 回答 4

1

有时

    Class myClass = Class.forName("com.example.first.MainActivity");

还不够,因为它不会加载类。我需要做一个myClass.newInstance();而不是使用myClass, 即使我没有使用创建的对象。

试试吧,也许它会解决你的问题。

于 2012-12-28T15:02:26.150 回答
1

你知道如果你拥有 Activity 你可以创建一个明确的意图:

 Intent intent = new Intent(Menu.this, MainActivity.class);

try catch那么你不需要

于 2012-12-28T16:27:59.887 回答
0

在某个地方,我看到一些包名称被排除在加载、部署之外,忘记了哪些。我记得一个是“android”,另一个是“internal”或“example”。因为我正在切换/混合 iOS / Android / Java EE,所以我不确定哪些地方不允许,哪个不允许。

尝试将“”重命名/重构为examplemy”包,也许它会解决。对于 Android Market,肯定不允许使用“ example”进行部署

于 2012-12-28T16:11:50.763 回答
0

你为什么不试试MainActivity.class呢?例如,Intent menuI = new Intent(Menu.this, MainActivity.class);

您可以发布 logcat 输出吗?

于 2012-12-28T16:24:27.697 回答