让我们假设我在我的应用程序中使用服务或数据库路径,所以每当我更改位置路径时,我都不想在编码中的所有时间段进行编辑。那么是否可以将值存储在某些xmlfile或manifest文件中并直接将其读取到变量中?或者我必须使用xml解析器?任何想法?
答案 0 :(得分:3)
您有多种选择:
1-您可以创建自己的文件(txt或xml),这取决于您,当您创建活动或服务时,您可以使用以下方式读取文件:
FileInputStream fileInputStream = openFileInput("test.txt");
DataInputStream in = new DataInputStream(fileInputStream);
BufferedReader br = new BufferedReader(new InputStreamReader(in) , 1<<10<<3);
String strLine = null;
while ((strLine = br.readLine()) != null) {
// strLine has one line from you file, it will have fixed format, for example:
// path=xyz
}
2 - 您可以在资源文件夹中将其添加为String值(默认情况下,eclipse会为您创建res文件夹,因此您可以使用以下路径找到名为strings.xml的文件: 水库&GT;值 - &GT;的strings.xml 所以在这个文件中你可以添加你的字符串:
<string name="path">hello</string>
因此,当您想要从活动或服务中阅读时,您可以说:
getResources().getText(R.string.path);
或者您可以使用具有您使用的所有常量的静态接口;因为您无法在运行时修改该值,但是如果能够在运行时修改此值;您需要存储在SharedPreference中,或创建自己的数据库并存储它。
答案 1 :(得分:1)
我建议采用简单的方法:
创建一个包含此类常量的类Constants(例如绝对文件路径)。在需要这些常量的所有类中导入它。常量中文件路径的更改会导致引用它的所有位置发生更改。
例如,在Android代码中,您不应直接使用常量来启动显示“显示设置”的意图
"android.settings.DISPLAY_SETTINGS"
而是android.provider.Settings常量
android.provider.Settings.ACTION_DISPLAY_SETTINGS