成为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"
/>
答案 0 :(得分:7)
根据Android / Java文档,您可以使用 java.text.NumberFormat :
。NumberFormat.getInstance()格式(mynumber的);
这将使用当前用户的区域设置。
有关http://developer.android.com/reference/java/text/NumberFormat.html
的更多信息答案 1 :(得分:0)
这句话非常可疑:
numberText.setText(R.string.numberText + aNumber);
你是什么意思?这是一个错字吗?
要显示格式化的数字,您可能只需要:
numberText.setText(aNumber的);
顺便说一下,我猜你没有使用调试器。一个认真的开发者肯定需要这个。
答案 2 :(得分:0)
它崩溃是因为 * {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background-color: hsl(257, 40%, 49%);
font-family: 'Poppins', sans-serif;
color: #fff;
overflow: hidden;
}
h2 {
font-family: 'Open Sans', sans-serif;
font-size: 1.2rem;
}
.bg-img {
height: 100vh;
background-image: url(./images/bg-desktop.svg);
background-repeat: no-repeat;
background-position: center;
background-size: cover;
padding: 4%;
}
.logo {
margin-bottom: 50px;
}
.container {
margin-left: 0;
margin-right: 0;
}
.illu-img {
width: 101%;
}
接受了NumberFormat.format()
或Double
而不是Long
。所以:
String
应该是:
aNumber = nf.format(aNumber);