2013-01-11 44 views
19

Tôi cần lấy tên quốc gia đầy đủ từ mã quốc gia. Ví dụ: đối với Hà Lan, tôi cần the Netherlands từ mã quốc gia NL.Lấy tên quốc gia từ mã quốc gia

Tôi nghĩ tôi có thể làm điều đó với Locale như:

Locale loc = new Locale("NL"); 
loc.getCountry(); 

nhưng loc.getCountry(); trống.

Bất kỳ ý tưởng nào về cách thực hiện việc này, vui lòng? Cảm ơn bạn trước!

+0

bạn có thể nhận được mã quốc gia iso từ kiểm tra thiết bị này [getNetworkCountryIso()] (http://developer.android.com/reference/android/ điện thoại/TelephonyManager.html # getNetworkCountryIso()) – juned

+2

Tôi không chắc chắn, nhưng bạn có thể sử dụng loc.getDisplayCountry() –

+0

@ShreyaShah chính xác, nó hoạt động như thế! – noloman

Trả lời

65

thử như

Locale loc = new Locale("","NL"); 
loc.getDisplayCountry(); 

Hy vọng điều này sẽ giúp đỡ.

+1

Phiên bản tham số đơn trên của trình xây dựng Locale có tham số đầu tiên là ngôn ngữ chứ không phải mã quốc gia. Điều này đã không làm việc trong trường hợp của tôi. Nó phải là một cái gì đó như thế này, nếu mã quốc gia đã được sử dụng. Locale loc = new Locale ("", "NL"); –

+0

Điều này làm việc cho tôi, tôi chỉ lãng phí rất nhiều thời gian suy nghĩ những gì đang xảy ra với Local (OneParam) .... xấu của tôi, tôi đã không kiểm tra tài liệu ... nhưng cảm ơn vì đã chia sẻ – anoop4real

0

Cố gắng sử dụng các nhà xây dựng khác

Locale loc = new Locale("NL", "The Netherlands"); 

Locale Có không xuất hiện để có một Locale được xác định trước cho The Netherlands

+1

nhưng tôi không thể biết rằng 'NL' là 'Hà Lan', thực sự, đó là những gì tôi muốn,' Hà Lan' từ 'NL' :) – noloman

22

này nên làm việc:

Locale l = new Locale("", "NL"); 
String country = l.getDisplayCountry(); 

Tham số đầu tiên của Locale là ngôn ngữ không hữu ích trong trường hợp của bạn.

+2

nếu tôi làm điều này, nó lấy' NL', vì vậy nó không hợp lệ – noloman

-2

như @ShreyaShah chỉ ra, giải pháp là sử dụng loc.getDisplayCountry()

+8

đây phải là một bình luận !! – Gridtestmail

0

cho một TelephonyManager đầy đủ giải pháp (từ this solution):

TelephonyManager teleMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
String localeCountry = teleMgr.getNetworkCountryIso(); 
if (localeCountry != null) { 
    Locale loc = new Locale("",localeCountry); 
    Log.d(TAG, "User is from " + loc); 
} 
Các vấn đề liên quan