我的应用程序中有10个URL,目前是硬编码的。我想将其外化并将其放在一个文件中,以便我的应用程序可以读取它。
这样做的最佳方式是什么?
private String appURL = "http://..."
private String storeURL = "http://..."
private String someURL = "http://..."
注意:我永远不会在我的应用中写出这个文件。我希望开发人员能够打开文件,并在必要时更改URL。
答案 0 :(得分:3)
在android应用程序中外部化字符串的最简单方法是使用字符串资源。在uris.xml
文件夹中创建文件res/values
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="appUrl">http://...</string>
<string name="storeUrl">http://...</string>
<!-- etc /-->
</resources>
然后,您可以通过以下方式访问字符串:
String appUrl = getString(R.string.appUrl);
String storeUrl = getString(R.string.storeUrl);
//..etc
getString()
是Context
类的方法。另请注意,在开始访问其资源之前,您应该等到Context
初始化。因此,getString()
方法onCreate()
或Activity
不会更早地调用Application
。
答案 1 :(得分:0)
您可以将值放在XML“配置”文件中,然后只读取XML文件中的值。
Example of reading an XML file.
或者只使用Konstantin Burov指出的Android的原生资源文件夹XML资源文件。
答案 2 :(得分:0)
如果您希望能够编辑外部平面文件,您可以简单地在SD上创建一个文本文件(并将一些默认值设置为静态字符串或属性)。然后您的代码读取文件(标准Java IO)并在您的活动的onCreate
中显示更改说明
You can also have such file in /assets folder; see this for example