2012-04-12 69 views

回答

8

第二种方法是更优雅,因为在国内,TextView(或任何View -class)会做得到的工作?指定资源的字符串。

让组件做内部工作始终是首选。此外,它更短,更具可读性。


关于我谈到了内部:如果你看一下机器人会的源代码,你可以看到 - 方法的setText(int)TextViewis implemented like this

public final void setText(int resid) { 
    setText(getContext().getResources().getText(resid)); 
} 

所以,它在内部使用Context -class从资源ID获取字符串。现在,如果你看一下getText() - 方法(也来自Context -class),你可以看到它is implemented the same way

public final String getString(int resId) { 
    return getResources().getString(resId); 
} 

所以对性能和可靠性的原因,这都没有区别。尽管如此,它更短,更具可读性。

+0

谢谢,完美! – 2012-04-12 09:35:22

+1

@Shamrflow我用来自Android源代码的一些代码更新了答案,表明它以相同的方式实现。看一看。 – 2012-04-12 09:43:06

+0

谢谢卢卡斯,甚至更好。我注意到在AlertBuilder中的setTitle和setMessage也是如此,还有一些其他的类。干杯! – 2012-04-12 13:19:09

1

那么,由于API提供了一个方法来传递资源字符串ID,所以更喜欢使用它是合乎逻辑的。你实际上可以检查setText(resourceid)的工作来查看底层,但setText(R.strings.whatever)是绝对推荐的。

0

,因为你需要获取资源方面,得到字符串后,您可以添加

yourEditText.setText(getResources().getString(R.string.mytext));