-4

我试图在我的布局上的 TextView 中将浮点值“度”显示为字符串,但在 tv.setText(mydegrees) 上收到 NullPointerException;我尝试了多种方法将浮点数转换为可用的字符串值,但似乎无法让 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

4 回答 4

1

正如 tigrang 指出的那样,您的问题不是将浮点数转换为字符串。你所拥有的应该可以正常工作。您的问题是由于某种原因findViewById()返回一个值,大概是因为没有视图具有您提供的 ID。在尝试对其执行任何操作之前null,请确保 ID 是正确的并且您正在获取一个有效的实例。TextView

于 2012-05-18T03:52:27.577 回答
0
String degreesStr = Float.parseFloat(degrees);

试试这个将浮点值转换为字符串。

于 2012-05-18T04:06:31.777 回答
0

编辑:如前所述@Jake King,在我之前的回答中,我没有注意细节(您的mydegree成员是一个String实例。

这样,您获得 a 的唯一原因NPE是您的tv TextView为空。

请检查您用于活动/渲染器/视图的布局 xml 文件,并确保您有一个TextView或任何扩展名为@+id/current_degrees.

此外,您的标题非常具有误导性:如果您的float声明和初始化如上所述,则不能有任何NullPointerException.

于 2012-05-18T03:40:22.783 回答
-1

简单..使用这个

tv.setText(degrees+""); //Degrees is the float value
于 2012-05-18T03:39:28.250 回答