Java Android开发,谷歌教程

Java Android开发,谷歌教程,java,android,Java,Android,我遵循谷歌教程构建你的第一个android应用程序。我已经到了需要使用函数openSearch()和openSettings()实现actionbar操作的地步 我在MainActivity.java文件中实现了所有这些 我的问题是: 在示例应用程序中,您可以键入消息,然后发送消息,然后在第二个活动中显示消息。在第二个活动中,单击“设置”按钮时,顶部的操作栏会更改,并且不会显示“我的搜索”图标或执行操作。为了让这些图标也显示在此活动的操作栏中,我是否需要在DisplayMessageActivi

我遵循谷歌教程构建你的第一个android应用程序。我已经到了需要使用函数openSearch()和openSettings()实现actionbar操作的地步

我在MainActivity.java文件中实现了所有这些

我的问题是:

在示例应用程序中,您可以键入消息,然后发送消息,然后在第二个活动中显示消息。在第二个活动中,单击“设置”按钮时,顶部的操作栏会更改,并且不会显示“我的搜索”图标或执行操作。为了让这些图标也显示在此活动的操作栏中,我是否需要在DisplayMessageActivity.java和MainActivity.java中添加这些方法并更新OnOptions ItemSelected方法?这是唯一一种将操作栏图标/操作带过的方法吗?要在每个活动中重新键入所需的相同方法吗?还是有更好的方法

我另一个相关的好奇心是这个。当我单击3个垂直点,然后单击设置时,会调用openSettings()方法。这3个垂直点显示在每个活动中,设置始终在列表中。但是,在DisplayMessageActivity而非MainActivity中单击设置显然不会执行对openSettings()的调用。设置和垂直点是如何进行的

倒数第二,如何从操作栏中的选项/垂直点向下拉列表中添加其他选择?设置总是存在的,尽管它在每个活动中的响应不同,这是我的第一个问题。但我想在所有活动的选项菜单中添加某些内容,以及某些活动特有的内容。我认为一定有比在每个Activity.java文件中重复switch语句和方法更好的方法

最后,在多个活动上实现操作栏的最佳实践是什么

显然,不同的活动在活动栏中通常会有不同的图标/动作,但其中的3个垂直点(选项)和设置显然是可以接受的,虽然在选项列表中添加其他内容会很好,但我不明白为什么设置会在不同的活动中发生变化。但是,正如我之前所说,除非我重复我添加到MainActivity.java中的DisplayMessageActivity.java中的代码,否则DisplayMessageActivity中不会调用该方法。我不知道在哪里可以添加这些,以便在所有活动中显示它们而不重复代码。我很困惑actionbar的选项/垂直点是如何传递到所有活动的,而其他的则需要在每个活动的java文件中重复代码,我希望它们显示在这些文件中

我知道这是一个有点冗长的问题,如果有必要,我会澄清。我只是有点困惑。我很好地完成了教程,因为我对java有相当的了解。然而谷歌的指南写得不是很好,Android环境对初学者来说非常混乱

我确实在一定程度上理解了事情是如何运作的,我只是想确保我的应用程序在复杂性增加时不会成为一堆不必要的重复语句和方法

提前感谢您的帮助和提示

为了让这些图标也显示在此活动的操作栏中,我是否需要在DisplayMessageActivity.java和MainActivity.java中添加这些方法并更新OnOptions ItemSelected方法?这是唯一一种将操作栏图标/操作带过的方法吗?要在每个活动中重新键入所需的相同方法吗?还是有更好的方法

这当然是一个解决方案,但正如你所知道的,这不是一个很好的解决方案。至少有两种替代解决方案:

  • 创建一个
    MenuActivity
    类,该类实现常见菜单项的所有逻辑,然后从您的所有活动中扩展该类,而不是扩展标准
    活动

  • 使用片段实现UI。片段与活动类似,因为它们从XML布局创建UI元素。一个区别是它们生活在一个“宿主活动”中。在这种特殊情况下,主机活动将提供公共菜单功能,每个片段可以根据您的需要进一步定制

  • 设置和垂直点是如何进行的


    最有可能的是,您的
    DisplayMessageActivity
    覆盖了
    OnCreateOptions菜单()
    ,并膨胀了一个菜单XML布局,该布局是在您创建活动类时由Android Studio(或Eclipse?)创建的。

    我建议您了解片段。这些将为您的所有问题提供解决方案。