これとほぼ同じコードが別のプログラムで機能したため、なぜここでnullpointerexceptionが発生するのかまったくわかりません。簡単なことだといいのですが。
これがlogcatです:
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)
Counterは、intが0で初期化され、vを格納するために次にクリックされた回数を追跡します。これは、67行目と216行目がマークされたコードの一部です。
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("");
}