2011-08-11 22 views

Trả lời

8

Tôi không nghĩ rằng có một câu trả lời đúng cho câu hỏi Metric/Imperial cho tất cả các ngôn ngữ.

Ví dụ, ở Anh chúng ta thường sử dụng dặm cho khoảng cách lớn như một cuộc hành trình xe, chân và inch cho chiều cao của người dân nhưng có thể sử dụng mét để mô tả kích thước của căn phòng.

Chúng tôi hầu như luôn luôn sử dụng lít để đo thể tích chất lỏng ngoại trừ bia và đôi khi sữa vẫn có thể được bán trong pints.

Kilôgam thường được ưu tiên so với bảng Anh và ounce nhưng hầu hết các sách công thức sẽ liệt kê cả hai vì một số người vẫn có tỷ lệ sử dụng thứ hai. Tôi nghĩ bạn sẽ phải thực hiện một số nghiên cứu để tìm hiểu xem quốc gia nào sử dụng quy mô nào cho những gì bạn quan tâm để đo lường (và tất nhiên, cung cấp cho người dùng tùy chọn để chọn một cách thủ công hoặc khác.)

+0

Cảm ơn bạn đã chia sẻ. Bạn có nghĩ rằng các "tài xế xe trung bình" ở Anh hay Mỹ có thể chuyển đổi km/h vào dặm ngay lập tức (aka trong khi lái xe)? –

8

Mặc dù không có cách nào để có được đơn vị ưu tiên sử dụng Locale, nhưng bạn có thể giả định mặc định Locale cho biết Hoa Kỳ hoặc Myanmar (locale.getISO3Country().equalsIgnoreCase("usa") || locale.getISO3Country().equalsIgnoreCase("mmr")) đơn vị ưa thích là hoàng đế.

+1

Không phải nước Anh cũng sử dụng hệ thống Imperial? – KevinDTimm

+1

@ KevinDTimm: Trong một số trường hợp (chẳng hạn như trong đồ uống có cồn và các loại tương tự), nhưng chắc chắn không giống với Hoa Kỳ. Vì vậy, đây chỉ là một giả định _default_. –

+1

IIRC, họ đo khoảng cách (trên đường) như dặm - xem http://answers.yahoo.com/question/index?qid=20080614151814AAtg1zo – KevinDTimm

2

Kể từ khi một số người bên ngoài nước Mỹ có thể đã thiết lập ngôn ngữ Tiếng Anh (Mỹ) nó là cuối cùng tốt hơn để lấy giá trị trả về của getSimCountryIso() thay vì getISO3Country()

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
String countryCode = tm.getSimCountryIso(); 

Nếu countryCodeus thẻ SIM là một người Mỹ và do đó các đơn vị hoàng đế có thể là lựa chọn tốt hơn - trong bất kỳ trường hợp khác theo hệ mét và được áp dụng

+0

Chắc chắn là đúng. –

+5

Không đúng.bạn đang đề xuất giải pháp dựa trên thành phần tùy chọn, chỉ là hack nửa chừng –

+1

xuống phiếu bầu Tôi nghĩ tốt nhất là kiểm tra xem có thẻ SIM trước không, và sau đó nếu không sử dụng ngôn ngữ. Tôi hoàn toàn đồng ý, điện thoại của tôi được đặt thành Hoa Kỳ, mặc dù tôi không ở đó và tôi sử dụng hệ thống số liệu ... –

1
  1. Xây dựng một Locale : Country : Metric

  2. Bạn có thể sử dụng Locale.getDefault() để có được một ngôn ngữ thích hợp cho người sử dụng của thiết bị bạn đang chạy trên

  3. Thực hiện một tìm kiếm trên bảng xây dựng

Kết quả là của bạn!

Các vấn đề liên quan