Kuwapp's Blog

Android と Flutter やってます

【Android】Stringリソースをどこからでも取得できるようにする

以前も似たような記事を書きました。
が、より使いやすい方法を考えたので再度記事にします。
【Android】stringリソースを定数クラスのように扱いたい - Kuwappブログ-アプリ開発記

Stringリソースを取得する際の問題点

string.xmlに上記の文字列を定義しているとします。
これらを取り出すには、次のようにContextクラスのgetStringメソッドにリソースのIDを指定します。
これが普通の方法だと思います。
ですが、この方法はContextを保持しているクラスでしか使用できないといった問題点があります。
また、Contextがとれないクラスでちょっとしたリソースを取得するために
Contextを渡してやる必要があったり面倒です。

どこからでも取得できるようにしてみた!

ということで、どこからでも取得できるようにしたクラスを作りました。

LoadResouceメソッドでContextを渡し、全てのリソースを取得してHashMapに保存しておきます。
後はgetStringメソッドにIDを渡して文字列を取得するだけです。
はじめに全てのリソースを取得しているので、どこからでもStringリソースを取得することができます。

以下は使用例
初回に起動するActivityでLoadResrouceを呼ぶのを忘れないで下さい。