Android

2011年2月12日土曜日

AndroidでLibraryを使う(Part2)

さらに前回の続き…。

前回はビルド・パスの構成にてライブラリを追加しましたが、この方法だとLibrary内のリソースが参照できない;;
<libraryPackageName>.R.xxxとかでLibrary側のR.javaのリソースIDは参照できるようだが、そのIDを使ってgetString()とかやってもLibrary側のリソースは取得できない。

さらにLibraryの内部でリソースにアクセスする場合にもcontextが必要で、contextはプロジェクトのMain側で取得するため、プロジェクトのMain側のリソースにアクセスすることはできるが、Library側のリソースにはアクセスできません。

どうやら、リソースを参照するにはライブラリのソースパスごとプロジェクトに含めてやる必要がありそうです。
(どうにかなんないのかな??リソースを使うLibraryはJARで配布できないんだろうか?)

具体的には、

  • プロジェクトのプロパティを開く→Androidのタブ
  • 追加を選んで、Libraryのプロジェクトを選択します。
    ※Libraryのプロジェクトは事前に作成するか、既存のプロジェクトをImportするかしておきます。



  • あとはOKを押すだけで完了。ソースパス毎追加するとパッケージ・エクスプローラはこんな感じになります。

  • genの中にLibraryのR.javaが追加されています。



  • これで、Library側のR.javaも参照できて、そのIDでリソースが参照できるようになります。 ただし、プロジェクト Main側のリソース名とLibrary側のリソース名が区別されない(どちらもR.string.xxxとかで参照することになる)ので、名前の付け方には注意する必要がありそうです。

0 件のコメント:

コメントを投稿