2010-05-10 2 views
0

내 응용 프로그램에 통화 값을 표시해야합니다. RIM API를 사용하여이 작업을 수행하는 쉬운 방법이 아닌 것 같아서, 내 솔루션을 작성하는 것으로 줄일 수 있습니다 (불행히도 BlackBerry 개발에 대한 일반적인 자제)BlackBerry에서 Formatter를 사용하여 통화에 이중을 포맷하려면 어떻게해야합니까?

현재 저는 Formatter 클래스를 사용하고 있습니다. , javax.microedition.locale에서 너무

protected String formatResult(double result) 
{ 
    try { 
    Locale l = Locale.getDefaultForSystem(); 
    Formatter formatter = new Formatter(l.toString()); 
    return formatter.formatCurrency(result); 
    } catch (UnsupportedLocaleException e) 
    { 
    return "This fails for the default locale because BlackBerry sucks"; 
    }  
} 

처럼 난 항상 시뮬레이터에서 catch 블록에 충돌 . 이것은 시뮬레이터에서 기본적으로 작동하지 않으므로 응용 프로그램에 넣는 것을 주저합니다.

위의 해결 방법은 나에게 말할 수 있습니까? 그리고 그것을 고치는 법. Blackberry.com에서 javax.microedition.global.Formatterjavadoc에서

답변

2

: 포매터 클래스의

이 구현은이 번에 로케일 중립 포맷을 지원합니다.

또한, BB 지원 포럼에서 개발자는 this topic에 다음과 같은 언급 :

는 Currnetly 단지 "엉"지역은 포맷터 클래스에 의해 지원됩니다.

그래서, 당신은 꽤 잃어 버렸다고 생각합니다.

1

BalusC가 정확합니다. 현재 지원되는 유일한 로케일은 "en"입니다. 귀하의 예제의 약간의 비틀기는 (적어도 "EN"로케일에 대한) 작동합니다) :

protected String formatResult(double result) 
{ 
    try { 
    Formatter formatter = new Formatter("en"); 
    return formatter.formatCurrency(result); 
    } catch (UnsupportedLocaleException e) 
    { 
    return "This fails for the default locale because BlackBerry sucks"; 
    }  
} 

API를 documentation 상태 : "결과는 로케일 특정 소수 구분 기호를 사용하여 그룹화 단락을 포함 할 수있다." 실제로 그룹화 구분 기호는 나와 함께 포함되지 않습니다 (나는 미화 금액 = 1000에 대해 쉼표가 없습니다).

+0

저에게 도움이 될 수 있습니다. 위치에 관계없이 en 로켈이 모든 BlackBerry에 항상 설치되어 있는지 알고 있습니까? – ageektrapped

+0

나는 그렇지 않습니다. 죄송합니다. – cmour

관련 문제