4

Androidライブラリ(jarファイル)をビルドしたいです。jar ファイルはローカライズする必要があります。クラスがあるように:

class MyMessageService
{
    //Needs to return different languages message according to locale
    String getMessage1(); 
}

瓶に詰めてres/values/string.xmlみました。R.class

しかし、jar を参照するメイン アプリケーションでは、次のように呼び出します。

 String s = this.getResources().getString(mylibrary.localize.R.string.hello); 

メインプロジェクトからの「s」を取得しました(リソースIDが衝突します)。

ローカリゼーションをサポートする Android ライブラリを作成する方法はありますか? ライブラリは単独で出荷されるはずなので、メイン アプリケーションにライブラリのリソースをインポートさせることはできません。

4

2 に答える 2

1

Androidでlibを間違った方法で実行しています.異なるプロジェクト間でUIコンポーネントを再利用するという問題にも直面しました.Androidライブラリプロジェクトを試してみてください(パッケージの例ではlib.jar.path)、lib projをビルドすると、 Rクラスが生成され、lib projをアプリケーションproj(プロジェクトプロパティのAndroidタブ内)に参照し、lib.jar.path.Rを使用して文字列などを見つけます。

于 2013-01-19T10:32:43.227 に答える
0

残念ながら、これは jar の標準的な方法では実行できません。ただし、ローカリゼーションを自分で実装することはできます。現在のユーザー ロケールは Locale.getDefault() で取得できます。その後、スイッチを作成し、ロケール文字列に対応する値を返すことができます (単純にコードまたは外部ファイルに保存できます)。

于 2014-02-05T09:34:34.133 に答える