我正在遵循谷歌教程来构建你的第一个android应用程序。我已经到了需要用函数openSearch()和openSettings()实现actionbar操作的地步。
我在MainActivity.java文件中实现了所有这些。
我的问题是:
在示例应用程序中,您可以键入一条消息,然后发送它,然后在第二个活动中显示它。在第二个活动中,顶部操作栏会发生更改,并且在单击“设置”按钮时不会显示我的搜索图标或执行该操作。为了使这些图标也显示在该活动的操作栏中,是否需要在DisplayMessageActivity.java和MainActivity.java中添加这些方法并更新MainActivity.java方法?这是传递操作栏图标/操作的唯一方法吗?要在每个活动中重新键入与您希望它们相同的方法?还是有更好的方法来做呢?
我的另一个有点相关的好奇心就是这个。当我单击3个垂直点,然后单击设置时,将调用openSettings()方法。这三个垂直点显示在每一个活动,设置总是在列表中。但是,单击设置显然不会在DisplayMessageActivity而不是MainActivity中执行对MainActivity()的调用。设置和垂直点是如何结转的?
其次,如何从操作栏中的选项/垂直点向下拉列表中添加其他选择?设置总是存在的,尽管它在每个活动中的响应不同,这是我的第一个问题。但我想在所有活动的选项菜单中添加某些内容,以及某些活动特有的内容。我认为在每个Activity.java文件中肯定有一个比重复switch语句和方法更好的方法。
最后,在多个活动上实现操作栏的最佳实践是什么?
显然,不同的活动在操作栏中通常会有不同的图标/操作,但是有些东西,比如3个垂直点(选项)和设置,在每个活动中都是可以接受的,而将其他东西添加到选项列表中是很好的--我不明白为什么设置应该跨活动更改。然而,正如我在前面所述,除非我重复我添加到DisplayMessageActivity中的DisplayMessageActivity.java代码,否则不会在MainActivity.java中调用该方法。我不知道在哪里可以添加这些内容,这样就可以在所有活动中显示它们,而不必重复代码。我对actionbar的选项/垂直点如何被转移到所有活动感到困惑,而其他的则需要在每个活动的java文件中重复我希望它们出现的代码。
我知道这是个有点冗长的问题,必要时我会澄清的。我只是有点困惑。我能够很好地完成本教程,因为我对java有了很好的理解。然而,谷歌的指南写得不太好,Android环境让初学者非常困惑。
我确实在一定程度上理解了事情是如何运作的,我只是想确保我的应用程序变得越来越复杂时,它不会是一堆不必要的重复语句和方法。
谢谢您的帮助和建议。
发布于 2014-10-16 01:39:58
为了使这些图标也显示在该活动的操作栏中,是否需要在DisplayMessageActivity.java和MainActivity.java中添加这些方法并更新MainActivity.java方法?这是传递操作栏图标/操作的唯一方法吗?要在每个活动中重新键入与您希望它们相同的方法?还是有更好的方法来做呢?
这当然是一个解决方案,但你显然知道,这不是一个很好的解决方案。至少有两种备选解决办法:
MenuActivity类,它实现公共菜单项的所有逻辑,然后从所有活动中扩展该类,而不是扩展标准的Activity类。设置和垂直点是如何结转的?
您的DisplayMessageActivity很可能会覆盖onCreateOptionsMenu()并膨胀由Android (或Eclipse?)创建的菜单XML布局。当您创建活动类时。
https://stackoverflow.com/questions/26394799
复制相似问题