2012-04-12 67 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));