6

どちらも機能します。明らかに、連結を開始する場合は、intの表示を回避するために文字列を取得する必要があります。

質問:使用するのに最も「エレガント」または「推奨」はどれですか?

ありがとうございました

4

3 に答える 3

10

TextView2番目のアプローチは、内部的に(または任意の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);
}

したがって、パフォーマンスまたは信頼性の理由から、違いはありません。それでも、それはより短く、より読みやすくなっています。

于 2012-04-12T09:28:17.847 に答える
0

APIはリソース文字列IDを渡すメソッドを提供するので、これを使用することを好むのは論理的であるように思われます。setText(resourceid)の動作を実際にチェックして、内部を確認することもできますが、setText(R.strings.whatever)を使用することを強くお勧めします。

于 2012-04-12T09:32:27.527 に答える
0

あなたは付け加えられます

yourEditText.setText(getResources().getString(R.string.mytext));

文字列を取得した後、リソースコンテキストを取得する必要があるためです。

于 2016-04-19T14:15:50.510 に答える