2012-04-10 12 views
0

私はnullpointerexceptionをなぜここに得ているのか全く分かりませんが、これはほぼ同じコードが別のプログラムで動作していたからです。私はそれが何か簡単だと思う。ここでなぜヌルポイントレセプション(Android)を取得していますか?

はlogcatです:0で初期化intとして

04-09 08:18:57.903: ERROR/AndroidRuntime(14378): java.lang.NullPointerException 
04-09 08:18:57.903: ERROR/AndroidRuntime(14378):  at com.prattia.webs.cheaterphysics.Vectors.storeInfo(Vectors.java:216) 
04-09 08:18:57.903: ERROR/AndroidRuntime(14378):  at com.prattia.webs.cheaterphysics.Vectors$2.onClick(Vectors.java:67) 
04-09 08:18:57.903: ERROR/AndroidRuntime(14378):  at android.view.View.performClick(View.java:2465) 
04-09 08:18:57.903: ERROR/AndroidRuntime(14378):  at android.view.View$PerformClick.run(View.java:8907) 
04-09 08:18:57.903: ERROR/AndroidRuntime(14378):  at android.os.Handler.handleCallback(Handler.java:587) 
04-09 08:18:57.903: ERROR/AndroidRuntime(14378):  at android.os.Handler.dispatchMessage(Handler.java:92) 
04-09 08:18:57.903: ERROR/AndroidRuntime(14378):  at android.os.Looper.loop(Looper.java:123) 

カウンターは次のここVANDを格納するために、クリックされた回数を追跡することでライン67と216とのコードの一部ですマーク:行64で

next.setOnClickListener(new View.OnClickListener() {  
      public void onClick(View v) { 
       error.setText(""); 
       if(value.toString().length()==0||angle.toString().length()==0) 
        error.setText("Must enter both value and angle"); 
       else{ 
        storeInfo(); //67 
        counter++; 
       } 
      } 
     }); 

public void storeInfo(){ 
     Doublify(value); 
     Doublify(angle); 

    //216 info[counter].value = Double.parseDouble(value.getText().toString()); 
     info[counter].angle = Double.parseDouble(angle.getText().toString()); 
     info[counter].radian = rad.isChecked(); 
     if(q1.isChecked()) 
      info[counter].quad=1; 
     if(q2.isChecked()) 
      info[counter].quad=2; 
     if(q3.isChecked()) 
      info[counter].quad=3; 
     if(q4.isChecked()) 
      info[counter].quad=4; 
     angle.setText(""); 
     value.setText(""); 
    } 
+1

このDoublifyが(何ですか)?また、 '情報'と値をどこで初期化していますか? – Shubhayu

+0

Vectors.javaの行番号216は何ですか? – MKJParekh

答えて

0

あなたはおそらく長さ0

ないのTextView toString()のデフォルトの実装を返す可能性があると「値」オブジェクトに toStringを使用
value.toString() 

が、ライン216上のテキスト値を取得するための正しい方法を使用して、あなたはそれをテストしていないので、nullにすることが可能である:のようなものへのライン64上の

value.getText().toString() 

変更この:

if(value.getText() == null || value.getText().toString().length() == 0) 

(およびangle値についても同様)

0

JScoobyCedの答えはNULLポインタをイマイチ場合は、それが配列であるかもしれません。

info[counter].value // might be null because array's start at 0 not 1 

多分あなたが欲しい:

info[counter - 1].value 
+0

これはNPEよりも 'ArrayIndexOutOfBoundsException'を投げる可能性が高いです – Squonk

+0

はい、MisterSquonkが正しいです、これは彼/彼女の次のバグでしょう=) –

関連する問題