我对Android开发很新,我正在开发一个我有4个活动的应用程序。每个活动都需要能够导航到其他任何活动。所以我在每个活动的顶部创建了4个按钮,允许这样做。 XML代码如下所示:
<Button ... android:onClick="loadProfileLayout"/>
<Button ... android:onClick="loadRulesLayout"/>
<Button ... android:onClick="loadSettingsLayout"/>
<Button ... android:onClick="loadHelpLayout"/>
清单有一个活动标签:
<activity android:name=".Profiler" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="Rules"></activity>
<activity android:name="Settings"></activity>
<activity android:name="Help"></activity>
所谓的函数是:
public void loadProfileLayout() { startActivity(new Intent(this, Profiler.class)); }
public void loadRulesLayout(View v) { startActivity(new Intent(this, Rules.class)); }
public void loadSettingsLayout(View v) { startActivity(new Intent(this, Settings.class)); }
public void loadHelpLayout(View v) { startActivity(new Intent(this, Help.class)); }
所以最初这个有效。从主要的“个人资料”活动,我可以导航到任何其他3个。从其他3个我可以导航到任何地方,但回到主要的。当我按下主活动按钮时,应用程序崩溃。我尝试调试,但它似乎甚至没有执行loadProfileLayout()。 Eclipse打开一个“View.class”文件,其内容基本上是“Source not found”。如果我按F8继续调试它再次加载“ZygoteInit $ MethodAndArgsCaller.run()”...,“找不到源”。再次按F8将在模拟器中加载错误消息“抱歉!应用程序意外停止。请再试一次。”
同样,我是Android的新手,我所知道的活动就是我在开发网站上阅读的内容。我在这里犯了一个根本性的错误,我不知道吗?
谢谢,
内特
答案 0 :(得分:4)
我不确定这是否是您问题中的拼写错误,但loadProfileLayout()
还需要View
作为其唯一参数:
public void loadProfileLayout(View v)
修改:View参数是导致onClick
事件的视图(在您的情况下是Button
实例)。我没有查看代码,但我假设View使用反射来查找要调用的方法(特别是将View作为参数的方法),并且因为它找不到匹配的方法,所以它决定抛出例外。