0
votes

This is my logcat:

07-01 17:51:51.190 14519-14519/? I/art: Not late-enabling -Xcheck:jni (already on) 07-01 17:51:51.290 14519-14519/? D/AndroidRuntime: Shutting down VM 07-01 17:51:51.290 14519-14519/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.exampl.home.assignmentques5, PID: 14519 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.exampl.home.assignmentques5/com.exampl.home.assignmentques5.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2236) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference at com.exampl.home.assignmentques5.MainActivity.(MainActivity.java:24) at java.lang.reflect.Constructor.newInstance(Native Method) at java.lang.Class.newInstance(Class.java:1606) at android.app.Instrumentation.newActivity(Instrumentation.java:1066) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2226) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)  at android.app.ActivityThread.access$800(ActivityThread.java:151)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:135)  at android.app.ActivityThread.main(ActivityThread.java:5254)  at java.lang.reflect.Method.invoke(Native Method)  at java.lang.reflect.Method.invoke(Method.java:372)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)  07-01 17:52:00.390 14519-14526/com.exampl.home.assignmentques5 W/art: Suspending all threads took: 180ms 07-01 17:56:51.770 14519-14519/? I/Process: Sending signal. PID: 14519 SIG: 9

And this is my Java code:

package com.exampl.home.assignmentques5;

{
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener
{
    Button b1,b2;
    EditText et1,et2,et3,et4,et5,et6,et7;
    TextView tv1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b1=(Button)findViewById(R.id.button);
        b2=(Button)findViewById(R.id.button2);
        b1.setOnClickListener(this);
        b2.setOnClickListener(this);
        tv1=(TextView)findViewById(R.id.textView4);
    }
    String s1 = et1.getText().toString();
    String s2 = et2.getText().toString();
    String s3 = et3.getText().toString();
    String s4 = et4.getText().toString();
    String s5 = et5.getText().toString();
    String s6 = et6.getText().toString();
    String s7 = et7.getText().toString();

    int a = Integer.parseInt(s7);

    @Override
    public void onClick(View v)
    { 
        if(v.getId()==R.id.button)
        {
            String S = "Your name is "+s1+" "+s2+" "+s3+"\nYour Address is"+et4+" "+et5+" "+et6+" "+a;
            tv1.setText(S);
        }
        else
        {   et1.setText(" ");
            et2.setText(" ");
            et3.setText(" ");
            et4.setText(" ");
            et5.setText(" ");
            et6.setText(" ");
            et7.setText(" ");

        }

    }
}
2

2 Answers

0
votes

All these objects:

EditText et1,et2,et3,et4,et5,et6,et7;

the are not initialized in the onCreated

so you are trying to get the text of an null referenced EditText before doing this: (and better move it to inside a method)

String s1  ;
String s2  ;
String s3  ;
....

init the Wodgets inside the onCreate method

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    b1=(Button)findViewById(R.id.button);
    b2=(Button)findViewById(R.id.button2);
    b1.setOnClickListener(this);
    b2.setOnClickListener(this);
    tv1=(TextView)findViewById(R.id.textView4);


    //
    et1 = (EditText )findViewById(R.id.????);
    et2 = (EditText )findViewById(R.id.????);
    et3 = (EditText )findViewById(R.id.????);
    ...
   initStrings();
}
private void initStrings(){
  s1 = et1.getText().toString();
  s2 = et2.getText().toString();
  s3 = et3.getText().toString();
  s4 = et4.getText().toString();
  s5 = et5.getText().toString();
  s6 = et6.getText().toString();
  s7 = et7.getText().toString();
}
0
votes

It's because you are trying to getText() on EditText that null when class MainActivity created. You should initilize your et1, et2, et3 with findView as you doing with buttons in onCreate method. And only then you able to getText() from them.