rphello101
Newbie
I'm fairly new to Android Programming and I don't understand why I got this error. Here is the logcat:
And here is the code segment:
Code:
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): FATAL EXCEPTION: main
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.prattia.webs.cheaterphysics/com.prattia.webs.cheaterphysics.Pythag}: java.lang.NullPointerException
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at android.os.Handler.dispatchMessage(Handler.java:99)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at android.os.Looper.loop(Looper.java:123)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at android.app.ActivityThread.main(ActivityThread.java:4627)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at java.lang.reflect.Method.invokeNative(Native Method)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at java.lang.reflect.Method.invoke(Method.java:521)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at dalvik.system.NativeStart.main(Native Method)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): Caused by: java.lang.NullPointerException
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at com.prattia.webs.cheaterphysics.Pythag.onCreate(Pythag.java:33)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
03-26 20:41:37.196: ERROR/AndroidRuntime(8250): ... 11 more
And here is the code segment:
Code:
public class Pythag extends Activity {
Button submit, clear;
EditText at, bt, ct;
TextView error, afinal, bfinal, cfinal;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.formulas);
submit = (Button) findViewById(R.id.bSubmitP);
clear = (Button) findViewById(R.id.bClearP);
at = (EditText) findViewById(R.id.etSideAP);
bt = (EditText) findViewById(R.id.etSideBP);
ct = (EditText) findViewById(R.id.etSideCP);
error = (TextView) findViewById(R.id.tvErrorP);
afinal = (TextView) findViewById(R.id.tvSideAP);
bfinal = (TextView) findViewById(R.id.tvSideBP);
cfinal = (TextView) findViewById(R.id.tvSideCP);
submit.setOnClickListener(new View.OnClickListener() { //line 33
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String as, bs, cs;
double ad, bd, cd;
int counter = 0;
if(at.getText().length()==0)
counter++;
if(bt.getText().length()==0)
counter++;
if(ct.getText().length()==0)
counter++;
if(counter!=1){
error.setText("Enter exactly two values");
} else {
as = at.getText().toString();
bs = bt.getText().toString();
cs = ct.getText().toString();
ad = Double.valueOf(as);
bd = Double.valueOf(bs);
cd = Double.valueOf(cs);
if(ad<0 || bd<0 || cd<0) {
error.setText("Sides must be positive");
} else {
if(at.getText().length()==0){
bfinal.setText(bt.getText());
cfinal.setText(ct.getText());
ad = Math.pow((Math.pow(cd, 2)-Math.pow(bd, 2)), .5);
afinal.setText(Double.toString(ad));
}
if(bt.getText().length()==0){
afinal.setText(at.getText());
cfinal.setText(ct.getText());
bd = Math.pow((Math.pow(cd, 2)-Math.pow(ad, 2)), .5);
bfinal.setText(Double.toString(bd));
}
if(at.getText().length()==0){
afinal.setText(at.getText());
bfinal.setText(bt.getText());
cd = Math.pow((Math.pow(ad, 2)+Math.pow(bd, 2)), .5);
cfinal.setText(Double.toString(cd));
}
}
}
}
});
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
afinal.setText("");
bfinal.setText("");
cfinal.setText("");
at.setText("");
bt.setText("");
ct.setText("");
error.setText("");
}
});
}
}