ホームページ > Java > &#&チュートリアル > Android でリソース ID と文字列値を効率的に取得する方法

Android でリソース ID と文字列値を効率的に取得する方法

Linda Hamilton
リリース: 2024-12-19 03:38:09
オリジナル
669 人が閲覧しました

How to Efficiently Retrieve Resource IDs and String Values in Android?

Android でのリソース ID と文字列の取得

Android 開発では、リソース ID とリソースに関連付けられた文字列値の両方を取得できます。共通の要件です。次の例を考えてみましょう:

R.drawable.icon
ログイン後にコピー

この参照は、「icon」という名前のドローアブル リソースを示します。 ID と文字列表現の両方をメソッドに渡すには、いくつかのオプションがあります。

Resources.getIdentifier() の使用

Resources.getIdentifier() メソッドを使用すると、次のことが可能になります。指定された文字列のリソース ID を取得します。文字列、必要なリソース タイプ (ドローアブルなど)、およびパッケージ名をパラメーターとして渡します。

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

これにより、「アイコン」ドローアブルの ID が取得されます。ただし、getString() を使用して文字列値を手動で取得する必要があります。

Java リフレクションの使用

もう 1 つの方法は、Java リフレクションを使用してリソース ID を取得し、文字列値を直接。ただし、このメソッドは、コード/リソースの圧縮が有効になっている場合、またはリソース名がフィールド名と一致しない場合 (文字列リソースなど) など、一部のシナリオでは失敗する可能性があります。

try {
    Field idField = R.drawable.class.getDeclaredField("icon");
    int resId = idField.getInt(null);
    String resString = getResources().getString(resId);
} catch (NoSuchFieldException | IllegalAccessException e) {
    e.printStackTrace();
}
ログイン後にコピー

ハイブリッド アプローチ

ハイブリッド アプローチは、両方の長所を提供できます。文字列値をメソッドに渡し、内部で getIdentifier() を使用してリソース ID を取得します。これにより、メソッドは ID と文字列値の両方へのアクセスを許可しながら、文字列のみを受信するようになります。

例:

private void processResource(String resourceName) {
    int resId = getResources().getIdentifier(resourceName, "drawable", getPackageName());
    if (resId != 0) {
        // Do something with the resource ID and string value...
    }
}
ログイン後にコピー

最も多くのものを選択することにより、ユースケースに適したソリューションを使用すると、Android 開発でリソース ID と文字列値の両方を効果的に取得して利用できます。

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

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