Attempt to invoke virtual method ‘void android.widget.TextView.setText(java.lang.CharSequence)’ on a null object reference Code Answer

Hello Developer, Hope you guys are doing great. Today at Tutorial Guruji Official website, we are sharing the answer of Attempt to invoke virtual method ‘void android.widget.TextView.setText(java.lang.CharSequence)’ on a null object reference without wasting too much if your time.

The question is published on by Tutorial Guruji team.

Unable to pass data from one fragment to another using intent. Logic is fine .Please check the last parts of main activity where I have sent strings to other activity using putExtra.

Here is the MainActivity.java :

public class MainActivity extends Activity implements View.OnClickListener {
EditText ed1,ed2,ed3,ed4,ed5,ed6;

Button bt1;
TextView tv1,tv2;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ed1=(EditText)findViewById(R.id.editText);
    ed2=(EditText)findViewById(R.id.editText2);
    ed3=(EditText)findViewById(R.id.editText3);
    ed4=(EditText)findViewById(R.id.editText4);
    ed5=(EditText)findViewById(R.id.editText5);
    ed6=(EditText)findViewById(R.id.editText6);
    tv1=(TextView)findViewById(R.id.textView);
    tv2=(TextView)findViewById(R.id.textView2);
    bt1=(Button)findViewById(R.id.button);
    bt1.setOnClickListener(this);
}
public void onClick(View v)
{

    String str1=ed1.getText().toString();
   String str2=ed2.getText().toString();
    String str3=ed3.getText().toString();
    String str4=ed4.getText().toString();
    String str5=ed5.getText().toString();
    String str6=ed6.getText().toString();

    if(str1.matches("") || str2.matches("") || str3.matches(""))
    {
        tv1.setText("One or more fields missing");
        if(str4.matches("") || str5.matches("") || str6.matches(""))
        {
            tv2.setText("One or more fields missing");
        }
    }

    else {
        int age1 = Integer.parseInt(ed2.getText().toString());
        int age2 = Integer.parseInt(ed5.getText().toString());

        int l1 = str1.length();
        str1 = str1.toLowerCase();
        str4 = str4.toLowerCase();
        int l2 = str4.length();

        int[] a = new int[26];
        int[] b = new int[26];

        for (int i = 0; i < l1; i++) {

            char c = str1.charAt(i);
            int x = (int) c - 97;
            a[x]++;
        }
        for (int i = 0; i < l2; i++) {

            char c = str4.charAt(i);
            int x = (int) c - 97;
            b[x]++;
        }
        int s=0,p;
        for(int i=0;i<26;i++)
        {
            if(a[i]>b[i])
                p=a[i];
            else
                p=b[i];

            s+=p;
        }
        if(l1>l2)
            p=l1;
        else
            p=l2;
        double love1=(double)(s/p)*100;
        double love2=0.0,x;

        if(age1>age2) {
            p = age1;
        x=age2;
        }
        else {
            p = age2;
            x=age1;
        }
        love2=(double)(x/p)*100;

        Intent in=new Intent(MainActivity.this,SecondActivity.class);
        String s1=""+love1;
        String s2=""+love2;



        in.putExtra("k1",str4);
       in.putExtra("k2",str4);
        in.putExtra("k3", love1);
        in.putExtra("k4",love2);
        startActivity(in);
        finish();


    }


}


}

Here is the code for SecondActivity.java :

public class SecondActivity extends Activity {

    TextView tv7,tv8,tv9,tv10;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);


    Intent in = getIntent();

    String s1 = in.getStringExtra("k1");
    String s2 = in.getStringExtra("k2");
    String s3 = in.getStringExtra("k3");
    String s4 = in.getStringExtra("k4");
    tv7=(TextView)findViewById(R.id.textView3);
    tv8=(TextView)findViewById(R.id.editText4);
    tv9=(TextView)findViewById(R.id.editText5);
    tv10=(TextView)findViewById(R.id.editText6);

    tv7.setText("Hello "+s1);
    tv8.setText("Your partner "+s2+" is really nice");
    tv9.setText("Your love percent based on name is "+s3);
    tv10.setText("Your love percent based on age is "+s4);
}
}

Here is the error I am getting :

 Process: khurana.nikhil.lovemeter, PID: 4019
java.lang.RuntimeException: Unable to start activity ComponentInfo{khurana.nikhil.lovemeter/khurana.nikhil.lovemeter.SecondActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
        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:5257)
        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 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
        at khurana.nikhil.lovemeter.SecondActivity.onCreate(SecondActivity.java:32)
        at android.app.Activity.performCreate(Activity.java:5990)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)

Here is activity_second.XML:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"
android:layout_height="match_parent"   android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:background="#cefcfd"
tools:context="khurana.nikhil.lovemeter.SecondActivity">


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:id="@+id/textView3"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="68dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:id="@+id/textView4"
    android:layout_below="@+id/textView3"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="51dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:id="@+id/textView5"
    android:layout_above="@+id/textView6"
    android:layout_alignStart="@+id/textView6"
    android:layout_marginBottom="84dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:id="@+id/textView6"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="51dp" />
</RelativeLayout>

            

Answer

tv8=(TextView)findViewById(R.id.editText4);
tv9=(TextView)findViewById(R.id.editText5);
tv10=(TextView)findViewById(R.id.editText6);

Change these to:

tv8=(TextView)findViewById(R.id.textView4);
tv9=(TextView)findViewById(R.id.textView5);
tv10=(TextView)findViewById(R.id.textView6);

You just used the wrong id’s.

We are here to answer your question about Attempt to invoke virtual method ‘void android.widget.TextView.setText(java.lang.CharSequence)’ on a null object reference - If you find the proper solution, please don't forgot to share this with your team members.

Related Posts

Tutorial Guruji