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 サイトの他の関連記事を参照してください。