我试图在我的布局上的TextView中将浮点值“degrees”显示为字符串,但在tv.setText(mydegrees)上收到NullPointerException;我已经尝试了很多方法将float转换为可用的字符串值,但似乎无法让TextView显示浮点值。任何帮助将不胜感激!
注意:度数由onTouchEvent
操纵来自XML的TextView:
<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" />
Java代码:
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);
答案 0 :(得分:1)
正如tigrang指出的那样,你的问题不是将float转换为String。你有什么应该工作正常。您的问题是findViewById()
由于某种原因返回null
值,可能是因为没有视图包含您提供的ID。在尝试对其执行任何操作之前,请确保ID正确并且您获得了有效的TextView
实例。
答案 1 :(得分:0)
修改:正如@Jake King
所述,在我之前的回答中,我没有注意细节(您的mydegree
成员是String
个实例。
这样,获得NPE
的唯一原因是您的tv TextView
为空。
请检查您用于活动/渲染器/视图的布局xml文件,并确保您拥有TextView
或@+id/current_degrees
的任何扩展名。
此外,您的标题非常具有误导性:如果您已按照上述声明和初始化float
,那么就不会有任何NullPointerException
。
答案 2 :(得分:0)
String degreesStr = Float.parseFloat(degrees);
尝试将float值转换为string。
答案 3 :(得分:-1)
简单..使用此
tv.setText(degrees+""); //Degrees is the float value