-4

レイアウトのTextViewでfloat値"degrees"を文字列として表示しようとしていますが、tv.setText(mydegrees)でNullPointerExceptionを受け取ります。floatを使用可能な文字列値に変換するために多くの方法を試しましたが、TextViewにfloat値を表示させることができないようです。どんな助けでも大歓迎です!

注:度は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が指摘しているように、問題はfloatをStringに変換することではありません。あなたが持っているものはうまくいくはずです。あなたの問題は、おそらくあなたが提供したIDを持つビューがないために、何らかの理由findViewById()で値を返すことです。nullIDが正しいこと、およびIDTextViewに対して操作を実行する前に、有効なインスタンスを取得していることを確認してください。

于 2012-05-18T03:52:27.577 に答える
0

編集:前述@Jake Kingのように、以前の回答では、詳細に注意を払っていませんでした(mydegreeメンバーがStringインスタンスであるということ)。

このように、あなたがaを取得する唯一の理由NPEは、あなたtv TextViewがnullであるということです。

TextViewアクティビティ/レンダラー/ビューに使用するレイアウトxmlファイルを確認し、またはの拡張子が付いていることを確認してください@+id/current_degrees

また、タイトルは非常に誤解を招く可能性があります。float上記のように宣言して初期化した場合、は存在できませんNullPointerException

于 2012-05-18T03:40:22.783 に答える
0
String degreesStr = Float.parseFloat(degrees);

float値を文字列に変換するこれを試してください。

于 2012-05-18T04:06:31.777 に答える
-1

シンプル..これを使用

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