Intenta invocar el método virtual 'void android.widget.TextView.setText (java.lang.CharSequence)' en una referencia de objeto nulo

No se puede pasar datos de un fragmento a otro mediante la intención. La lógica está bien. Compruebe por favor las últimas partes de la actividad principal donde he enviado las secuencias a otra actividad usando putExtra.

Aquí está el 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(); } } } 

Aquí está el código de 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); } } 

Aquí está el error que estoy recibiendo:

  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) 

Aquí es 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> 

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

Cambiar estos a:

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

Acabas de usar el ID equivocado.

  • Doble control deslizante android
  • Creación de una tabla / cuadrícula con una columna congelada y encabezados congelados
  • Detectar si el video se tomó en modo retrato / paisaje
  • ¿Cómo puedo alinear un elemento para estar en el centro de y sobre otro elemento en el diseño relativo?
  • Android EditText Multiline con SoftInputMode adjustPan
  • ¿Cómo ocultar por programación algunos elementos de la vista, pero no todos, en una salida XML?
  • Cómo cambiar Primera letra de cada palabra a mayúsculas en Textview xml
  • Mostrar cuadro de diálogo casi pantalla completa en mi caso (con ActionBar y superposición)
  • Cómo configurar las pestañas en la parte inferior de la pantalla en android?
  • Android Drawer Layout está mostrando contenido de fragmentos
  • ¿Cómo mostrar el temporizador de cuenta regresiva en la barra de estado en android, como la pantalla de tiempo?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.