ホームページ >Java >&#&チュートリアル >ID ではなく名前で Android リソースにアクセスするにはどうすればよいですか?

ID ではなく名前で Android リソースにアクセスするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-27 12:54:16752ブラウズ

How Can I Access Android Resources by Name Instead of ID?

Android で名前によるリソースへのアクセス

Android アプリケーションを開発する場合、多くの場合、文字列、ドローアブル、レイアウトなどのリソースにアクセスする必要があります。リソースの整数 ID を使用するのが一般的ですが、名前でアクセスする方が好ましい場合もあります。

名前でリソース ID を取得する方法

Androidフレームワークは、指定されたリソースの ID を取得するメソッドを提供します。 name:

int resourceId = this.getResources()
    .getIdentifier("nameOfResource", "type", this.getPackageName())

ここで:

  • これは、Activity オブジェクトまたは Context オブジェクトを表します。
  • nameOfResource は、それぞれのリソース ファイルで定義されているリソースの名前です (例: 、文字列の場合は strings.xml)。
  • type は、次のようなリソース タイプです。画像の場合は描画可能、テキストの場合は文字列。
  • getPackageName() はアプリケーションのパッケージ名を取得します。

使用例

アクセスするにはstrings.xml 内の「app_name」という名前の文字列リソースファイル:

int stringId = this.getResources()
    .getIdentifier("app_name", "string", this.getPackageName());
String appName = this.getString(stringId);

同様に、ドローアブル フォルダー内の「image.png」という名前のドローアブル リソースにアクセスするには:

int drawableId = this.getResources()
    .getIdentifier("image", "drawable", this.getPackageName());
Drawable drawable = this.getDrawable(drawableId);

パフォーマンスに関する考慮事項

getIdentifier() を使用した名前によるリソースへのアクセスは、 getIdentifier() を使用した場合に比べて比較的遅いことに注意することが重要です。整数 ID を直接指定します。したがって、動的リソースの読み込みが必要な場合など、必要な場合にのみこのメソッドを使用することをお勧めします。

以上がID ではなく名前で Android リソースにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。