XML从另一个XML文件获取值

Tenkii

我正在尝试构建一个使用Google Map API的android应用程序,我想将此项目放在GIT上。因此,我有一个API密钥,并且此信息在AndroidManifest.xml中是这样的(我已*key*在此处替换了我的实际API密钥

<meta-data
android:name="com.google.android.geo.API_KEY"
android:value= *key* />

我不希望在git上推送此敏感信息,但是我不能gitignore这个文件。是否可以制作另一个具有密钥的XML文件,并使AndroidManfiest.xml从那里获取(以便我可以gitignore这个文件)?

AndroidManifest.xml具有以下代码

<activity
android:name=".MapsActivity"
android:label="@string/title_activity_maps"
android:launchMode="singleTop" />

而且我注意到,label属性是从位于res / values / strings.xml中的另一个XML文件获取其值的,因此:

  1. AndroidManifest.xml如何知道在何处查找值 label
  2. 什么@意思
  3. 可以在任何地方放置XML文件(称为Config.xml)吗?还是必须在res文件夹中?
小学

您应该能够将秘密字符串放入其自己的XML文件中,并将该文件添加到gitignore中。然后,您可以在中引用字符串AndroidManifest.xml

例:

app/src/main/res/values/secrets.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="google_api_key">abcdefg-12345</string>    
</resources>
app/src/main/AndroidManifest.xml

<manifest ...>
    <application ...>
        ...
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/google_api_key" />
        ...
    </application>
</manifest>

回答您的问题:任何Android XML文件(例如AndroidManifest.xml,layout和其他文件)都将属性值解释为原始字符串,除非它以开头@@前缀告诉它来查找资源。@string表示字符串资源,@layout表示布局,@drawable表示可绘制,@id表示ID等。这些资源通常在各自的文件中定义,但并不总是如此。无论如何,该文件始终位于的子目录中res对于您的情况,字符串在中定义res/values/some_file.xml您可以在其中创建任意数量的文件,res/values并且在AAPT编译步骤中将所有这些文件的内容合并在一起,因此无论文件名如何,都可以通过定义的名称引用其中的任何文件。

请查看https://developer.android.com/guide/topics/manifest/meta-data-element以获得有关<meta-data>标记的更多信息,以及https://developer.android.com/guide/topics/resources/string-resource获得更多信息。字符串资源的信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从一个 XML 标记中获取值并使用 XSLT 放入另一个标记?

根据当前 XML 中的元素值,从另一个 XML 文件中获取元素

从具有给定属性和值的xml中提取值,然后获取另一个属性的值

在Android上的另一个xml文件中从DatePicker获取日期

从另一个域获取 XML 文件到 Mysql 数据库

使用Powershell从多个XML文件中的元素获取数据以输出到另一个单个XML文件

从另一个模块导入XML bean文件?

从另一个项目加载xml文件

如何从另一个Gradle文件获取值的权限?

如何从另一个文件函数获取值?Python

从javascript中的另一个函数获取值

从另一个类中的 JTextArea 获取值

Laravel 从另一个来源获取值

PHP从另一个页面获取值

LinqtoSQL 从另一个表中获取值

使用Powershell操纵xml文件dom并创建另一个xml文件

使用 XSLT 将 XML 文件转换为另一个 XML 文件

通过for循环(XDocument)将一个XML文件插入另一个XML文件

PHP将多个元素从一个XML文件复制到另一个XML文件

将元素从一个xml文件移动到另一个xml文件

使用 XSLT 将一个 XML 文件转换为另一个 XML 文件

XSLT在另一个元素中设置另一个XML文件的属性值

如何使用python将大量XML插入另一个XML文件?

Xml解析并写入Java中的另一个xml文件

动态地从另一个XML文件中以XML填充数据(Java)

如何根据给定xml文件中的上一个节点获取值

将XML转换为另一个XML

Scala:从另一个xml引用xml文字

XML包含来自另一个xml的元素