将浮点数转换为导致空指针异常的字符串

时间:2012-05-18 03:35:20

标签: java android floating-point nullpointerexception ontouchevent

我试图在我的布局上的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);

4 个答案:

答案 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