Android活动导航

时间:2010-11-29 15:30:09

标签: android android-layout android-manifest

我对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的新手,我所知道的活动就是我在开发网站上阅读的内容。我在这里犯了一个根本性的错误,我不知道吗?

谢谢,
内特

1 个答案:

答案 0 :(得分:4)

我不确定这是否是您问题中的拼写错误,但loadProfileLayout()还需要View作为其唯一参数:

public void loadProfileLayout(View v)

修改:View参数是导致onClick事件的视图(在您的情况下是Button实例)。我没有查看代码,但我假设View使用反射来查找要调用的方法(特别是将View作为参数的方法),并且因为它找不到匹配的方法,所以它决定抛出例外。