两者都有效,显然如果你开始连接,你需要获取字符串以避免显示int。
问题:哪种“优雅”或“推荐”使用?
谢谢
答案 0 :(得分:9)
第二种方法更优雅,因为在内部,TextView
(或任何View
- 类)将完成获取指定资源的String的工作。
让组件完成内部工作始终是首选。此外,它更短,更易读。
关于我所谈到的内幕:如果你看一下Androids的源代码,你可以看到setText(int)
TextView
的{{1}}方法:
public final void setText(int resid) {
setText(getContext().getResources().getText(resid));
}
因此,它在内部使用Context
- 类从resource-id获取字符串。现在,如果您查看getText()
- 方法(也来自Context
- 类),您可以看到它is implemented like this:
public final String getString(int resId) {
return getResources().getString(resId);
}
因此,出于性能或可靠性的原因,它没有任何区别。它仍然更短,更具可读性。
答案 1 :(得分:1)
好吧,因为API提供了传递资源字符串ID的方法,所以更喜欢使用它似乎是合乎逻辑的。您实际上可以检查setText(resourceid)的工作情况以查看引擎盖下方,但绝对建议使用setText(R.strings.whatever)。
答案 2 :(得分:0)
您可以添加
yourEditText.setText(getResources().getString(R.string.mytext));
因为在获取字符串后需要获取资源上下文。