0

私はAndroidプロジェクトを持っており、各クライアントに合わせていくつかの文字列、画像、データベースを変更する必要があります(たとえば、顧客が名前を入力するのではなく、これらは別々のアプリになります)。私の知る限り、これを行うための最良の方法は、すべてのGUIとロジックを処理するライブラリを使用し、それを使用してプロジェクトで必要なものを変更することです。残念ながら、ライブラリは親プロジェクトのフォルダでレイアウトを探しているようですが、を生成するにres/layoutは、それでも独自のres/layoutフォルダに同じファイルが必要R.javaです。これは基本的に、リソースの重複コピーを処理する必要があることを意味します。

私の質問は基本的にこれです:親プロジェクト内に保持されているいくつかのリソース(ライブラリ内のコードで参照できる)を除いて、私のプロジェクトが(親プロジェクトではなく)ライブラリからのリソースを使用することは可能ですか?

そうでなければ、これを処理するためのより良い方法はありますか?

4

1 に答える 1

0

残念ながら、ライブラリは親プロジェクトのres / layoutフォルダーでレイアウトを検索しているようですが、R.javaを生成するには、それでも独自のres/layoutフォルダーで同じファイルが必要です。これは基本的に、リソースの重複コピーを処理する必要があることを意味します。

確かに、ライブラリ内のコピーは単にデフォルトになりますが。それらを置き換える必要がある場合にのみ、ホスティングプロジェクトでそれらをオーバーライドします。したがって、「重複」が発生するのは、ファイルが実際に異なる場所だけです。

親プロジェクト内に保持されているいくつかのリソース(ライブラリ内のコードで参照できる)を除いて、私のプロジェクトが(親プロジェクトではなく)ライブラリのリソースを使用することは可能ですか?

名前で特定のリソースを想定するのではなく、リソースIDをパラメーターとして受け入れるようにライブラリのAPIを変更する場合のみR。たとえば、ほとんどのAndroid SDKは、使用するリソースsetContentView()の名前(eg、)を想定するのではなく、メソッド(eg、)のパラメーターとしてリソースIDを使用しますR.layout.main

そうでなければ、これを処理するためのより良い方法はありますか?

あなたの最初のアプローチは私にはうまく見えました。

于 2012-04-26T16:06:14.287 に答える