【发布时间】:2017-08-24 17:42:21
【问题描述】:
两者都有效,显然如果您开始连接,则需要获取字符串以避免显示 int。
问题:使用哪个最“优雅”或“推荐”?
谢谢
【问题讨论】:
标签: android
两者都有效,显然如果您开始连接,则需要获取字符串以避免显示 int。
问题:使用哪个最“优雅”或“推荐”?
谢谢
【问题讨论】:
标签: android
第二种方法更优雅,因为在内部,TextView(或任何View-class)将完成为您指定的资源获取字符串的工作。
让组件做内部工作总是首选。此外,它更短,更易读。
关于我讲的内部原理:如果你看一下Androids source-code,你可以看到TextViewis implemented like this的setText(int)-方法:
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);
}
因此,出于性能或可靠性的原因,它没有任何区别。不过,它更短,更易读。
【讨论】:
好吧,由于 API 提供了一种传递资源字符串 ID 的方法,因此更喜欢使用它似乎是合乎逻辑的。您实际上可以检查 setText(resourceid) 的工作情况以了解幕后情况,但绝对推荐使用 setText(R.strings.whatever)。
【讨论】:
你可以添加
yourEditText.setText(getResources().getString(R.string.mytext));
因为你需要在获取字符串之后获取资源上下文。
【讨论】: