【问题标题】:How to have code in my Library Project operate on configuration data in my android application?如何让我的库项目中的代码对我的 android 应用程序中的配置数据进行操作?
【发布时间】:2013-06-10 21:11:21
【问题描述】:

我有 10 个基于一个图书馆项目的应用程序。我在图书馆项目中有一个显示图像列表的活动。每个应用程序的图像都不同,并且位于单个项目中。如何创建图像数据的数据结构,以便图书馆项目活动可以循环遍历它?

【问题讨论】:

  • 引用your previous question on this subject中的我自己,“某处,宿主项目需要连接到这个库。无论在哪里,传递值。例如,把它作为额外的放在用于的Intent上从库中将控制权传递给此活动。”
  • 这实际上是一个完全不同的问题。我想知道如何使代码结构在应用程序的不同部分可用。
  • “这实际上是一个完全不同的问题”——可能,但解决方案似乎是相同的。您需要让库公开某种 API,无论是类上的方法形式,还是 Intents 上的附加内容等形式。
  • 应用程序上没有运行可以调用任何这些 API 或使用 Intent 发送任何内容的代码。我希望图书馆项目通过检查配置文件或应用程序中的可用类来找出它需要什么。

标签: android library-project


【解决方案1】:

CommonsWare 的回答似乎是个好主意,我会先尝试。

另一种方法是在你的库中创建一个空的整数列表:

<integer-array name="resources">
</integer-array>

在每个项目中列出实际使用的可绘制对象:

<integer-array name="resources">
    <item>@drawable/res1</item>
    <item>@drawable/res2</item>
    <item>@drawable/res3</item>
</integer-array>

这样你就可以在库中引用它,并且可以遍历列表,这将覆盖库的空列表。

【讨论】:

【解决方案2】:

应用程序上没有运行可以调用任何这些 API 或使用 Intent 发送任何内容的代码

那么你的库代码将如何被执行?

如果答案是“我正在发布包含在托管应用程序清单中的组件”,则使用清单中的 &lt;meta-data&gt; 元素以允许托管应用程序将您指向包含此配置信息的 XML 资源文件.您可以通过应用小部件、可搜索的活动等看到这一点。

【讨论】:

  • 所有活动都在图书馆中。 Manifest 中设置了一项活动以自动加载。该应用不需要“调用”任何东西。
  • @pixelearth:然后使用我在答案第二段中引用的&lt;meta-data&gt; 元素。
猜你喜欢
  • 2020-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多