3

사용자가 정확한 점수를 더 쉽게 알 수 있도록 내 숫자 3 개의 블록을 작은 공백으로 구분하고 싶습니다 (유니 코드 : SIX-PER-EM SPACE). 안드로이드에서 숫자의 구분 기호로 작은 공백을 얻으려면 어떻게해야합니까?

대신 1,241,234

나는 그 코드는 나에게 오류를 제공, 241 (234)

1 내가 불행하게도

DecimalFormat formatter = new DecimalFormat("# ### ### ### ###"); 
String score = formatter.format(getHighscore()); 

을 시도합니다. 내 6 필 인 공간을 내 전화 번호로 가져 오려면 어떻게해야합니까?

오류 :

FATAL EXCEPTION: main 
Process: com.pairs.pairs, PID: 4296 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pairs.pairs/com.pairs.phoneme.TestingActivity}: android.view.InflateException: Binary XML file line #13: Binary XML file line #13: Error inflating class fragment 
                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2547) 
                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2613) 
                     at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1469) 
                     at android.os.Handler.dispatchMessage(Handler.java:111) 
                     at android.os.Looper.loop(Looper.java:207) 
                     at android.app.ActivityThread.main(ActivityThread.java:5695) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749) 
                    Caused by: android.view.InflateException: Binary XML file line #13: Binary XML file line #13: Error inflating class fragment 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:539) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                     at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:406) 
                     at android.app.Activity.setContentView(Activity.java:2190) 
                     at com.pairs.phoneme.TestingActivity.portraitLayout(TestingActivity.java:125) 
                     at com.pairs.phoneme.TestingActivity.onCreate(TestingActivity.java:76) 
                     at android.app.Activity.performCreate(Activity.java:6270) 
                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113) 
                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2500) 
                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2613)  
                     at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1469)  
                     at android.os.Handler.dispatchMessage(Handler.java:111)  
                     at android.os.Looper.loop(Looper.java:207)  
                     at android.app.ActivityThread.main(ActivityThread.java:5695)  
                     at java.lang.reflect.Method.invoke(Native Method)  
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)  
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)  
                    Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class fragment 
                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782) 
                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
                     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
                     at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:406)  
                     at android.app.Activity.setContentView(Activity.java:2190)  
                     at com.pairs.phoneme.TestingActivity.portraitLayout(TestingActivity.java:125)  
                     at com.pairs.phoneme.TestingActivity.onCreate(TestingActivity.java:76)  
                     at android.app.Activity.performCreate(Activity.java:6270)  
                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)  
                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2500)  
                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2613)  
                     at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1469)  
                     at android.os.Handler.dispatchMessage(Handler.java:111)  
                     at android.os.Looper.loop(Looper.java:207)  
                     at android.app.ActivityThread.main(ActivityThread.java:5695)  
                     at java.lang.reflect.Method.invoke(Native Method)  
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)  
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)  
                    Caused by: java.lang.IllegalArgumentException: # ### ### ### ### 
                     at java.text.DecimalFormat.initNative(DecimalFormat.java:564) 
                     at java.text.DecimalFormat.<init>(DecimalFormat.java:557) 
                     at java.text.DecimalFormat.<init>(DecimalFormat.java:535) 
                     at com.pairs.phoneme.Score.getHighScoreString(Score.java:103) 
                     at com.pairs.phoneme.fragments.ScoreAndTimeFragment.updateTopbarViews(ScoreAndTimeFragment.java:44) 
                     at com.pairs.phoneme.fragments.ScoreAndTimeFragment.onCreateView(ScoreAndTimeFragment.java:59) 
                     at android.app.Fragment.performCreateView(Fragment.java:2236) 
                     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:954) 
                     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1131) 
                     at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1233) 
                     at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2228) 
                     at android.app.FragmentController.onCreateView(FragmentController.java:98) 
                     at android.app.Activity.onCreateView(Activity.java:5579) 
                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:754) 
                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)  
                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)  
                     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)  
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:515)  
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
                     at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
                     at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:406)  
                     at android.app.Activity.setContentView(Activity.java:2190)  
                     at com.pairs.phoneme.TestingActivity.portraitLayout(TestingActivity.java:125)  
                     at com.pairs.phoneme.TestingActivity.onCreate(TestingActivity.java:76)  
                     at android.app.Activity.performCreate(Activity.java:6270)  
                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)  
                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2500)  
                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2613)  
                     at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1469)  
                     at android.os.Handler.dispatchMessage(Handler.java:111)  
                     at android.os.Looper.loop(Looper.java:207)  
                     at android.app.ActivityThread.main(ActivityThread.java:5695)  
                     at java.lang.reflect.Method.invoke(Native Method)  
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)  
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)  
+0

코드가 제공 어떤 오류 :

은 당신이 무엇을 필요 않는 쉽게 구분할 코드가? –

+0

@H. Pauwelyn 내가 복사 붙여 넣기 오류. 서식을 어떻게 바꿀 수 있는지, 많은 공간을 차지하지 않는다는 것을 알고 있습니까? – Christian

+0

충돌 로그에 inflate 예외가 있습니다. 관련 XML을 게시 할 수 있습니까 –

답변

4

작동합니다 :

Caused by: java.lang.IllegalArgumentException: # ### ### ### ### at java.text.DecimalFormat.initNative(DecimalFormat.java:564)

을 나는이에 공간을 통과하는 것은 불가능하다고 생각 건설자.

DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US); 

DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols(); 
symbols.setGroupingSeparator('\u2008'); 

formatter.setDecimalFormatSymbols(symbols); 

Log.e("Formatted: ", formatter.format(1241234)); 
2

이 같은 시도는 당신은 예외 받고

DecimalFormat formatter = new DecimalFormat("#,###,###,###,###"); 
String score = formatter.format(getHighscore()).replaceAll(",", " ");