兩個工作,很明顯,如果你開始串聯,你需要爲了避免顯示一個int得到的字符串。的setText(的getString(R.strings.whatever)或的setText(R.strings.whatever)?
問題:這是最「優雅」或「推薦」使用
謝謝
兩個工作,很明顯,如果你開始串聯,你需要爲了避免顯示一個int得到的字符串。的setText(的getString(R.strings.whatever)或的setText(R.strings.whatever)?
問題:這是最「優雅」或「推薦」使用
謝謝
第二種方法是更優雅,因爲在國內,TextView
(或任何View
-class)會做得到的工作?指定資源的字符串。
讓組件做內部工作始終是首選。此外,它更短,更具可讀性。
關於我談到了內部:如果你看一下機器人會的源代碼,你可以看到 - 方法的setText(int)
TextView
is 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);
}
所以對性能和可靠性的原因,這都沒有區別。儘管如此,它更短,更具可讀性。
那麼,由於API提供了一個方法來傳遞資源字符串ID,所以更喜歡使用它是合乎邏輯的。你實際上可以檢查setText(resourceid)的工作來查看底層,但setText(R.strings.whatever)是絕對推薦的。
,因爲你需要獲取資源方面,得到字符串後,您可以添加
yourEditText.setText(getResources().getString(R.string.mytext));
。
謝謝,完美! – 2012-04-12 09:35:22
@Shamrflow我用來自Android源代碼的一些代碼更新了答案,表明它以相同的方式實現。看一看。 – 2012-04-12 09:43:06
謝謝盧卡斯,甚至更好。我注意到在AlertBuilder中的setTitle和setMessage也是如此,還有一些其他的類。乾杯! – 2012-04-12 13:19:09