android编程:如何在android studio中处理多个strings.xml(错误:重复资源!)

时间:2015-10-10 11:57:14

标签: android xml

我的问题是我想要创建两个strings.xml,每个文件都包含不同的文本,我想从不同的活动中读取这些文本,但我得到1个错误(请帮助我)。我试图创建一个新的方式资源文件名为strings2.xml ...这里是错误:

错误:任务':app:mergeDebugResources'执行失败。

  

[string / action_settings] C:\ Users \ DELL \ AndroidStudioProjects \ TestScrollView \ app \ src \ main \ res \ values \ strings.xml [string / action_settings] C:\ Users \ DELL \ AndroidStudioProjects \ TestScrollView \ app \ src \ main \ res \ values \ strings2.xml:错误:资源重复   [string / app_name] C:\ Users \ DELL \ AndroidStudioProjects \ TestScrollView \ app \ src \ main \ res \ values \ strings.xml [string / app_name] C:\ Users \ DELL \ AndroidStudioProjects \ TestScrollView \ app \ src \ main \ res \ values \ strings2.xml:错误:资源重复

1 个答案:

答案 0 :(得分:0)

如果它在两者中都定义了action_settingsapp_name,那么很可靠。 :-)为什么你首先需要两个字符串XML?无论你从哪个活动中调用它们,所有字符串都可以很容易地变成一个。如果要区分字符串(不是为了编译器而是为了自己),请使用不同的something_前缀。

从透视角度来看,活动或多或少像其他操作系统中的窗口。您有一个应用程序,可以使用多个页面或窗口或活动,无论您命名它们。您的资源(字符串,布局,绘图,菜单等)属于应用程序,而不属于其中一个活动。因此,从应用程序中的任何活动,您只需引用相同的字符串,相同的资源。在一个活动中有一个帮助函数,允许你直接获取一个字符串,而不是通过getResources()调用它,因为它是一个经常需要的操作,但你的程序在两种情况下都是一样的:

getResources().getString(R.string.xxx)
getString(R.string.xxx)
getResources().getDrawable(R.drawable.xxx)

因此,如果您有一个名为actions_settings的字符串:

<resources xmlns:tools="http://schemas.android.com/tools">
  ...
  <string name="actions_settings">...........</string>
  ...
</resources>

你只需参考:

getString(R.string.actions_settings)

无论您当前在哪个应用活动中使用。