どちらも機能します。明らかに、連結を開始する場合は、intの表示を回避するために文字列を取得する必要があります。
質問:使用するのに最も「エレガント」または「推奨」はどれですか?
ありがとうございました
どちらも機能します。明らかに、連結を開始する場合は、intの表示を回避するために文字列を取得する必要があります。
質問:使用するのに最も「エレガント」または「推奨」はどれですか?
ありがとうございました
TextView
2番目のアプローチは、内部的に(または任意のView
クラス)が指定されたリソースの文字列を取得するジョブを実行するため、より洗練されています。
コンポーネントに内部作業を行わせることが常に推奨されます。また、短くて読みやすくなっています。
私が話した内部について:Androidのソースコードを見ると、setText(int)
-methodofが次のTextView
ように実装されていることがわかります。
public final void setText(int resid) {
setText(getContext().getResources().getText(resid));
}
そのため、内部でContext
-classを使用して、resource-idから文字列を取得します。ここで、getText()
-method(これもContext
-classから取得されます)を見ると、同じ方法で実装されていることがわかります。
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));
文字列を取得した後、リソースコンテキストを取得する必要があるためです。