【问题标题】:Switch from the main.xml layout to another layout从 main.xml 布局切换到另一个布局
【发布时间】:2011-05-10 15:41:40
【问题描述】:

我有一个基本的 Android 问题:

我有一个 main.xml 布局,在启动应用程序时会加载。此页面有一个菜单按钮,我想(单击时)将用户发送到另一个布局(about.xml)。

我怀疑这是对的。单击时会启动此命令:

setContentView(R.layout.about);

它似乎有效,我确实看到了 about.xml 页面,但是当我在我的 Android 设备上点击 BACK 按钮时,我无法导航回 main.xml 布局,应用程序刚刚关闭。

我怀疑这是在 xml 布局文件之间导航的正确方法。能否请您帮助或指向一个页面,该页面为像我这样的计算机程序员初学者详细说明了这一点?

非常感谢,

拍拍

编辑: 感谢您帮助我指出正确方向的所有答案。为了帮助像我这样的未来新手程序员理解活动,这是我在网上找到的一个非常简单的教程,它为我们初学者绘制了它!

http://www.warriorpoint.com/blog/2009/05/24/android-how-to-switch-between-activities/

【问题讨论】:

标签: android xml layout switch-statement


【解决方案1】:

您的关于页面是否有单独的活动?通常为每个屏幕创建一个新活动。当您进入新屏幕时,新活动将堆叠在第一个屏幕活动之上。在安卓设备上点击返回,会弹出上一个活动。

【讨论】:

  • 非常感谢!对我来说,查看编程代码很像解释象形文字。我只需要一个参考点,您的回答帮助我指明了正确的方向。非常感谢你! :-)
【解决方案2】:

您要做的是为每个不同的屏幕创建一个新的Activity。您将每个新活动创建为一个新类,并使用Intents 在它们之间移动。这样,您将为每个活动只使用一次setContentView();Android website 资源丰富。

【讨论】:

  • 感谢您抽出宝贵时间提供链接! :-)
【解决方案3】:

您的主要活动的内容视图设置为main.xml,而您还有另一个about.xml,应将其设置为另一个活动,以便您可以使用意图从一个活动移动到另一个活动。我建议您访问开发者的网站,在那里您可以找到活动和意图的用法。

【讨论】:

    【解决方案4】:

    在这样的布局之间切换时,您需要管理后退按钮的行为

    这是一个伪代码示例,可在您的活动主类中使用

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        if((keyCode == KeyEvent.KEYCODE_BACK) && (secondary_layout_is_displayed))
        {
            displayPrimaryLayout();
            // return true to let the system know we consumed the back button press
            return true;
        }
    
        // return the default value
        return super.onKeyDown(keyCode, event);
    }
    

    【讨论】:

    • 无需更改后退按钮的行为。最好的解决方案是为新布局创建一个新 Activity。
    • -1 同样,OP 确实知道基础知识,他需要首先按照 Google 的建议创建活动,然后再尝试扭曲行为。
    • 哎呀,我同意最好的解决方案是多项活动,我只是根据他的代码提供一个解决方案......
    • snctin:是的,最后,“活动”是我一直在寻找的,但我非常感谢您的努力! :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多