将所有硬编码字符串提取到字符串资源

时间:2016-02-23 05:46:26

标签: android-studio intellij-idea keyboard-shortcuts

我知道有 Alt + Enter 组合将单个String提取到字符串资源。但我想知道有什么东西可以将我的项目的所有字符串提取到字符串资源中吗?

如果我制作其中一个,Android工作室也不会将相同的String制作成字符串资源。

String s = "Hello World";
String s2 = "Hello World";

例如。我将“Hello World”创建为字符串资源,另外还在项目中同样保存硬编码。

String s = getString(R.string.helloworld);
String s2 = "Hello World";

如果有人知道这样的话。

4 个答案:

答案 0 :(得分:17)

根据您的要求并且我知道android studio中没有这样的功能,您真的在寻找,但这里有一些可以帮助您的替代方法。

  • 转到" WHERE TO_DATE('01/'|| V.PERIOD,'DD/MM/YYYY') BETWEEN TO_DATE('01/'|| '10/2015','DD/MM/YYYY') AND TO_DATE('01/'|| '12/2015','DD/MM/YYYY') OR V.PERIOD IN ('01/2015','09/2015') > Analyze",然后输入Run Inspection ..。在整个项目中运行它,您将获得一个检查结果面板,它将显示所有项目的硬编码文本。然后按 Alt + Enter ,您将获得一个自动提取字符串的选项。

  • 另一种方法是查找和替换但由于时间消耗,它并不是更好。为简化方法,您可以查看here的灵活性。

答案 1 :(得分:1)

对于XML布局文件中的硬编码字符串:

单击分析->按名称运行检查->输入硬编码字符串->选择整个项目->确定。 在这里,您将通过以下方式从xml布局文件中获取所有硬编码字符串,只有您可以通过以下方式将其提取到strings.xml中:

单击硬编码文本-> Alt + Enter->从资源中提取->输入该字符串的相应资源名称->确定

对于Java类代码中的硬编码字符串:

单击分析->按名称运行检查->输入硬编码文本->选择整个项目->确定。 在这里,您将通过以下方式从Java类文件中获取所有硬编码的字符串,只有它们可以通过以下方式将其提取到strings.xml:

单击硬编码文本-> Alt + Enter->从资源中提取->输入该字符串的相应资源名称->确定->为在Java代码中创建的每个字符串资源添加getString。

因此,硬编码字符串-> Java类代码,而 硬编码文本-> Android Studio中的Xml布局文件。

答案 2 :(得分:0)

在Android 3.2.1中,您可以转到Edit->Find->Find In Path...并搜索android:text="。这将为您提供xml files中所有硬编码字符串的列表。

搜索Toast.makeText,以查找java files中的所有吐司面包。

搜索setText(",以搜索java files中的文本集,依此类推。

您可以像这样搜索要在整个项目中查找并替换的项目。

答案 3 :(得分:-1)

我相信你要寻找的捷径是(在Mac上) Alt + Command + C