【问题标题】:Android Sample missing from download下载中缺少 Android 示例
【发布时间】:2014-03-13 06:29:17
【问题描述】:

在这个关于片段的官方指南页面http://developer.android.com/guide/components/fragments.html#Example 在底部,有一个链接可以下载所描述示例的整个源代码,

“有关使用片段的更多示例(以及此示例的完整源文件),请参阅ApiDemos 中提供的 API Demos 示例应用程序(可从Samples SDK component 下载)。”

但链接将我带到不包含上述示例项目的示例页面。

如何获取丢失的代码?我可以在其他地方找到它吗? 我正是需要该代码,因为它符合我的需要,而且我没有时间实现另一个更复杂的逻辑。

请帮忙。 谢谢

【问题讨论】:

  • 打开sdk manager,下载samples,然后到你电脑上的android sdk root,找到samples文件夹...
  • 感谢您的提示,但是该项目也未在示例中下载。它应该包含一个 DetailsFragment.java,所以我在整个示例文件夹中寻找这个文件,但没有运气。还有其他想法吗?

标签: android android-fragments


【解决方案1】:

所有旧样本在最近的样本分布中都被移动到一个遗留文件夹下

例如,这里有什么:

samples/android-14/ApiDemos

现在来了

samples/android-19/legacy/ApiDemos

你链接的页面并不明显,但是DetailsFragment是在

中定义的一个内部类
legacy/ApiDemos/src/com/example/android/apis/app/FragmentLayout.java

而不是在自己的类文件中

在这种情况下,递归搜索文件及其内容非常有用,尤其是在仅限于可能的目录时。在 OSX 或 Linux 开发系统(甚至是 cygwin 或 mingw shell)上,您可以使用 find 命令查找文件,并使用带有 -r 标志的 grep 在可能目录下的任何文件中查找模式。


您后续问题的答案可以通过

找到

grep -A5 -B1 -r a_item *

legacy/ApiDemos/res/menu/shortcuts.xml-
legacy/ApiDemos/res/menu/shortcuts.xml:    <item android:id="@+id/a_item"
legacy/ApiDemos/res/menu/shortcuts.xml-        android:alphabeticShortcut="a"
legacy/ApiDemos/res/menu/shortcuts.xml-        android:title="Alvin" />
legacy/ApiDemos/res/menu/shortcuts.xml-
legacy/ApiDemos/res/menu/shortcuts.xml-    <item android:id="@+id/b_item"
legacy/ApiDemos/res/menu/shortcuts.xml-        android:alphabeticShortcut="b"

-r 是递归标志,-A-B 告诉 grep 在匹配行前后打印多少行

这是 xml 布局中项目 ID 的定义,使用自动递增语法指定。如果您构建 ApiDemos 项目,然后检查 R.java,您会发现这些名称中的每一个都在递增列表中分配给一个常量数值。

【讨论】:

  • 非常感谢。我没想到它会是一个内部类,所以我没有对它进行彻底的搜索。但是,我使用 DetailsFragment.java 文件作为我真正需要的快速示例,这就是示例项目的布局(因为可以在教程中看到 DetailsFragment.java 代码,因此无需查找它)。我希望找到项目的文件夹。我实际上需要知道这条线指向什么:ft.replace(R.id.a_item, details); 那么在哪里定义以及这个 id a_item 是什么?
  • 我同意您关于如何搜索它的想法,但是,本教程讨论的是片段,并且 a_item 应该是包含 a分段。我能找到的只是菜单项 ID。 (我已经像这样搜索过了,但我想你可能对我在哪里可以找到它有不同的想法)
  • 代码是“执行一个事务,用框架内的这个片段替换任何现有的片段。”并执行:` FragmentTransaction ft = getFragmentManager().beginTransaction(); if (index == 0) { ft.replace(R.id.details, details); } else { ft.replace(R.id.a_item, details); } `
  • 我想从教程中重新创建项目,我需要布局以便正确地重新创建它。
猜你喜欢
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多