次のメソッドを作成しました。
public List<String> listAll() {
List worldCountriesByLocal = new ArrayList();
for (Locale locale : Locale.getAvailableLocales()) {
final String isoCountry = locale.getDisplayCountry();
if (isoCountry.length() > 0) {
worldCountriesByLocal.add(isoCountry);
Collections.sort(worldCountriesByLocal);
}
}
return worldCountriesByLocal;
}
非常にシンプルで、ユーザーロケールの世界の国のリストを返します。次に、アルファベット順に並べ替えます。これはすべて完全に機能します(国の重複が時々発生するようです!)。
とにかく、私が必要としているのは、米国と英国をリストの一番上に置くことです。私が抱えている問題は、米国と英国で返されるインデックスまたは文字列を分離できないことです。これは、ロケールに固有であるためです。
どんなアイデアでも本当にありがたいです。