我试图在我的布局上的 TextView 中将浮点值"度"显示为字符串,但在 tv.setText(mydegrees( 上收到一个 NullPointerException; 我已经尝试了许多方法将浮点数转换为可用的字符串值,但似乎无法让 TextView 显示浮点值。 任何帮助将不胜感激!
注意:度数由 onTouchEvent 操作
来自 XML 的文本视图:
<TextView
android:id="@+id/current_degrees"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical|center"
android:text="@string/app_name"
android:textColor="#FFFF00" />
爪哇代码:
float degrees = (float) -65;
String mydegrees = String.format("%.2f", degrees) ;
//...
public void pushClick(View pushClick) {
switch (pushClick.getId()) {
case R.id.btn_push:
TextView tv = (TextView) findViewById(R.id.current_degrees);
tv.setText(mydegrees);
正如tigrang指出的那样,你的问题不是将浮点数转换为字符串。你拥有的东西应该可以正常工作。您的问题是findViewById()
出于某种原因返回null
值,大概是因为没有视图具有您提供的 ID。在尝试对其执行任何操作之前,请确保 ID 正确且您获取的是有效的 TextView
实例。
编辑:正如@Jake King
所指出的,在我之前的回答中,我没有注意细节(您的mydegree
成员是一个String
实例。
这样,您获得NPE
的唯一原因是您的tv TextView
为空。
请检查您用于活动/渲染器/视图的布局 xml 文件,并确保有TextView
或其任何扩展名和 @+id/current_degrees
.
此外,您的标题非常具有误导性:如果您如上所述声明和初始化了float
,则不会有任何NullPointerException
。
String degreesStr = Float.parseFloat(degrees);
试试这个,将浮点值转换为字符串。
简单.. 使用这个
tv.setText(degrees+""); //Degrees is the float value