安卓活动导航

4

我是android开发的新手,正在开发一款应用程序,其中包含4个活动。每个活动都需要能够导航到其他3个活动之一。因此,我在每个活动的顶部创建了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”文件,基本上是“找不到源”。如果我按F8继续调试,它会加载“ZygoteInit$MethodAndArgsCaller.run()”... 再次,“找不到源”。再次按F8将在模拟器中加载错误消息:“对不起! 应用程序意外停止。请重试。”

同样,我是Android的新手,所有我所知道的活动都是在开发网站上阅读的。我是否犯了我不知道的基本错误?

谢谢,
Nate


1
我不确定这是否会给您带来任何困扰,但您还需要更改<activity>标记中的名称,在它们之前加上.(句点)。例如,<activity android:name="Rules"></activity> 应更改为 <activity android:name=".Rules"></activity>。 - SpencerElliott
1个回答

4
我不确定你的问题中是否有错别字,但是loadProfileLayout()方法也需要一个View作为其唯一参数:
public void loadProfileLayout(View v)

编辑:View参数是触发onClick事件的View(在您的情况下,是Button实例)。我没有查看代码,但我认为View使用反射来查找要调用的方法(具体来说是一个带有View参数的方法),由于没有找到匹配的方法,因此决定抛出异常。


那就是问题所在。你能提供一些关于这个参数的见解吗?到底传递了什么被使用了?我在其他地方包含了View v,因为在开发网站上是这样显示的。但实际上我并没有在我的函数中使用v对象。它的目的是什么,为什么应用程序没有它就会崩溃? - linsek
添加了一些额外的文本。希望有所帮助! - Erich Douglass
是的。谢谢你的帮助,Erich。 - linsek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接