アプリケーションに 2 つのロケールがあります。現在のロケールを変更せずに、異なるロケールの文字列配列などのリソースにアクセスできますか? つまり、コーディングでは、設定で変更したくありません。
7519 次
4 に答える
9
cMK が現在のロケールの文字列配列で、cEN が異なるロケールの文字列配列である場合に機能するコードは次のとおりです。
cMK = getResources().getStringArray(R.array.cities);
Configuration confTmp =new Configuration( getResources().getConfiguration());
confTmp.locale = new Locale("en");
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Resources resources = new Resources(getAssets(), metrics, confTmp);
/* get localized string */
cENG = getResources().getStringArray(R.array.cities);
現在のロケールは変更されていません。それがポイントでした。
于 2012-06-04T09:35:33.847 に答える
2
はい、できます。Resources
意図を指定して新しいオブジェクトを作成する必要がありますConfiguration
。
于 2012-06-03T22:54:52.677 に答える
0
Java 7 (Android ではない) では、ロケールをフォーマット リソースと表示で異なるように設定できます。
Locale.setDefault(DISPLAY, Locale.PL);
Locale.setDefault(FORMAT, Locale.US);
同様のスレッド:アプリ内でロケールを変更する.
于 2013-01-30T10:32:45.527 に答える