Android开发,谷歌教程

时间:2014-10-16 01:27:10

标签: java android

我正在关注构建您的第一个Android应用程序的Google教程。我到了需要用openSearch()和openSettings()函数实现动作栏动作的地步。

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

我的问题是:

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

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

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

最后,在多个活动中实施操作栏的最佳做法是什么?

显然,不同的活动通常会在操作栏中显示不同的图标/操作,但是有些内容,例如3个垂直点(选项)和其中的设置显然可以在每个Activity中使用,而添加它会很不错选项列表中的其他内容我不明白为什么设置应该在各个活动中发生变化。然而正如我之前所说,除非我重复添加到MainActivity.java的DisplayMessageActivity.java中的代码,否则不会在DisplayMessageActivity中调用该方法。我很困惑,我可以在哪里添加这些,以便它们显示在所有活动上而不重复代码。而且我对动作栏的选项/垂直点如何转移到所有活动感到困惑,而其他人则要求在每个活动中重复代码'我希望它们出现的java文件。

我知道这是一个冗长的问题,如有必要,我会澄清。我有点困惑。我能够通过教程很好地完成它,因为我对java有一个很好的理解。但是谷歌的指南并没有很好地编写,Android环境对初学者来说非常困惑。

我确实理解事情在某种程度上是如何运作的,我只是想确保我实际上是这样做的,当我的应用程序变得复杂时,它不会成为不必要的重复陈述的混乱和方法。

提前感谢您的任何帮助和提示。

1 个答案:

答案 0 :(得分:1)

  

为了在此活动的操作栏中显示这些图标,我是否需要添加这些方法并更新DisplayMessageActivity.java以及MainActivity.java中的onOptionsItemSelected方法?这是执行操作栏图标/操作的唯一方法吗?要在每个您想要的活动中重新键入相同的方法?或者有更好的方法吗?

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

  1. 创建一个MenuActivity类,它实现了常用菜单项的所有逻辑,然后从所有活动中扩展此类,而不是扩展标准Activity类。

  2. 使用片段来实现您的UI。片段类似于活动,因为它们从XML布局创建UI元素。一个不同之处在于他们生活在一个主持人活动中#34;。在这种特殊情况下,主机活动将提供通用菜单功能,每个片段可以根据您的需要进一步定制。

  3.   

    设置和垂直点是如何结转的?

    您的DisplayMessageActivity很可能会覆盖onCreateOptionsMenu(),并在您创建活动类时夸大由Android Studio(或Eclipse?)创建的菜单XML布局。