android - форматирование чисел на основе локали - PullRequest
5 голосов
/ 26 сентября 2011

будучи новичком в Android, у меня есть код, объединенный, как показано ниже, с целью отображения определенного числа 12345,66 по-разному в соответствии с пользовательским языком. Однако он просто разбил мое тестовое приложение, и я не мог понять, почему ... Оцените некоторую помощь здесь. Большое спасибо заранее!

//get current locale and display number
Configuration sysConfig = getResources().getConfiguration();
Locale curLocale = sysConfig.locale;
String aNumber = "12345.66";
NumberFormat nf = NumberFormat.getInstance(curLocale);
aNumber = nf.format(aNumber);
numberText.setText(R.string.numberText + aNumber);

layout.xml:

<TextView 
    android:layout_width="fill_parent"
android:layout_height="wrap_content"   
    android:id="@+id/nbumberText"
/>

Ответы [ 2 ]

8 голосов
/ 16 августа 2013

Согласно документации Android / Java, вы можете использовать java.text.NumberFormat :

.

NumberFormat.getInstance () формат (MyNumber);

Это будет использовать локаль текущего пользователя.

Дополнительная информация о http://developer.android.com/reference/java/text/NumberFormat.html

0 голосов
/ 01 октября 2011

Это утверждение очень подозрительно:

numberText.setText (R.string.numberText + aNumber);

Что вы подразумеваете под этим?Это опечатка?

Для отображения отформатированного числа, вероятно, вам понадобятся только:

numberText.setText (aNumber);

Кстати, я думаю, у вас естьне используется отладчик.Серьезному разработчику это точно нужно.

...