安卓:资源字符串自动生成

4

我对Android不太熟悉。在图形化布局中添加按钮或视图时,它会这样添加标签文本- android:text="Button"。为什么它不添加 "android:text="@string/my_label" 并在 string.xml 文件中添加字符串资源呢?Eclipse不能自动完成吗?


它可以实现,但需要谷歌团队中的某个人来实施。 - zapl
你将不得不99.9%的时间更改默认文本,你可以使用布局xml或字符串xml。一旦他们为您“自动”执行此操作,开发人员就会感到不满,因为他们必须更改布局xml中的文本声明并删除添加的字符串值。 - jnthnjns
6个回答

17

我搜索了很多,但是没有找到任何自动化方式将字符串添加到资源文件中,但是这样做可以在我看来节省很多时间。

选择一个字符串,点击重构--> Android --> 提取Android字符串。


你需要在文本模式下选择XML文件中的文本。 - math
安卓工作室怎么样? - Pratik Butani

9
感谢Brent Hronik。在Windows上,CTRL-1可以正常工作。

7
因为您不必使用@string资源。@strings资源的目的是为了更轻松地更改代码元素。例如,如果您在多个地方使用应用程序标题,比如在每个对话框中,那么如果您更改标题,您将不得不更改显示应用程序标题的所有实例。因此,在这种情况下,@string/App_Title可以设置为“My Program”,所有对话框都可以引用它。如果将标题更改为“Hello World”,则所有这些内容都会更改。@strings资源,虽然eclipse尝试,但不必为每个字符串使用。不使用它相当于硬编码该值。有很多支持和反对使用@string的原因。
我不确定eclipse中是否有设置,可以在添加控件时自动将字符串添加到资源文件中。
(编辑:根据其他用户的说法,CTRL+1是执行此操作的快捷方式。)

3

感谢Siddiq Abu Bakkar!我没想到会在那里。

在Eclipse(和Windows)上的快捷键是:

Alt+Shift+A (释放所有按键,然后按下) S

当您第一次使用Eclipse时,不容易理解如何使用这种“复杂”的快捷键。


3

你可以同时点击Command和1(Mac上假设是Control 1,Windows或Linux为Control 1)将字符串添加到strings.xml中。这将把资源添加到strings.xml并在编辑器中打开。


0

我还不能投票和评论答案(因为我是新用户,声望值不够)

但我确认:

1) hard type the string in your code like
   mydlg.setTitle("hello guys");
2) select your string (e.g : "hello guys")
3) press Alt + Shift + A then press S

一个对话框将出现,让您将新字符串添加到资源中。该对话框中的所有内容应该已经填好了。


在我看来,如果可能的话,你应该将此更新为注释。 - Laur Ivan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接