ホームページ > Java > &#&チュートリアル > Android リソース ID とそれに対応する文字列を効率的に取得するにはどうすればよいですか?

Android リソース ID とそれに対応する文字列を効率的に取得するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-31 17:49:10
オリジナル
846 人が閲覧しました

How Can I Efficiently Retrieve Android Resource IDs and Their Corresponding Strings?

Android リソース ファイルからリソース ID と文字列を取得するには?

Android 開発では、メソッドにリソース ID を渡すことが必要になります。クラス内で。通常、開発者は、そのリソースに関連付けられた ID と対応する文字列の両方を必要とします。この状況の一般的な例は、イメージ ドローアブルを操作するときに発生します。

アイコン イメージを表すリソース ID R.drawable.icon について考えてみましょう。 ID と文字列「icon」の両方を利用するには、さまざまな方法を検討できます。

1 つの解決策には、Resources.getIdentifier() メソッドを使用することが含まれます。

int resId = getResources().getIdentifier("icon", "drawable", packageName);
ログイン後にコピー

ここでは、getResources()はコンテキスト オブジェクトを指し、packageName はアプリケーションのパッケージ名で、「icon」は文字列識別子を表します。ただし、この方法は、特にコード/リソースの圧縮が有効になっているリリース ビルドでは比較的遅くなる可能性があります。

別のアプローチは、リフレクションを使用して目的のリソース フィールドにアクセスすることです。

Class resClass = R.drawable.class;
Field field = resClass.getDeclaredField("icon");
int id = field.getInt(null);
ログイン後にコピー

これこのメソッドはリソース フィールドに直接アクセスし、以前のアプローチよりも高速なパフォーマンスを提供します。ただし、リソースが縮小したり、リソース名が文字列識別子と異なる場合には問題が発生する可能性があります。

追加の考慮事項:

リフレクションを利用する場合は、次の点に注意することが重要です。コード/リソースの縮小により、リリース ビルドではアプローチが無効になる可能性があります。さらに、 を使用して定義された文字列などの一部のリソースには、実際の文字列識別子に対応するフィールド名がない場合があります。

以上がAndroid リソース ID とそれに対応する文字列を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート