4

AndroidManifest.xml にいくつかの .xml があることがわかりました。

このような:

<meta-data android:name="zoo" android:value="@string/kangaroo" />

Android のコード:

ApplicationInfo ai = getPackageManager().getApplicationInfo(activity.getPackageName(), PackageManager.GET_META_DATA);
String zoo = ai.metaData.getString("zoo");

string.xml で文字列値を定義し、コードで非常に簡単に取得できます。

と string.xml の違いは何ですか?

4

1 に答える 1

3

これは悪い例です。値はアプリが使用するデータのようです。マニフェストは、アプリに関するメタデータを保存する正しい場所です。アプリによって使用される (つまり、消費される) 文字列データをここに配置することも、ローカライズできません。

私のアプリの 1 つで、ライブラリに静的コンテンツがあります。そのライブラリには独自のバージョン番号があり、「about」アクティビティでユーザーに表示されます。これをコード内の文字列定数として保存することもできますが、SDK バージョンなどと一緒にすべてのアプリ バージョン情報が保存されるマニフェスト メタデータを使用する方が、より論理的で保守しやすいです。

要約すると、あなたが与えた例では、@string/kangaroo の値は strings.xml にあるはずです。

于 2012-09-19T07:26:13.997 に答える