java.lang.String android.os.Bundle.getString(java.lang.String)

java.lang.String android.os.Bundle.getString(java.lang.String),java,android,nullpointerexception,Java,Android,Nullpointerexception,我的MainActivity.class正在通过setOnClickListener调用putExtra到SecondActivity.class Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra("sentString", stringName); startActivity(intent); // Recieve the extra sent from MainAc

我的MainActivity.class正在通过setOnClickListener调用putExtra到SecondActivity.class

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("sentString", stringName);
startActivity(intent);
//    Recieve the extra sent from MainActivity.class
Intent SecondActivityIntent = getIntent();
String mString = SecondActivityIntent .getExtras().getString("sentString");

//    Send extra to another activity ThirdActivity.class
SecondActivityIntent.putExtra("sentString", mString);
startActivity(SecondActivityIntent); 
//    Recieve extra from SecondActivity.class
Intent thirdActivityintent = getIntent();
String mString = thirdActivityintent.getExtra().getString("sentString");
//    This time I am calling SecondActivity.class but I will not send extra
thirdActivityintent = new Intent(ThirdActivity.this, SecondActivity.class);
startActivity(thirdActivityintent);
SecondActivity.class setOnClickListener

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("sentString", stringName);
startActivity(intent);
//    Recieve the extra sent from MainActivity.class
Intent SecondActivityIntent = getIntent();
String mString = SecondActivityIntent .getExtras().getString("sentString");

//    Send extra to another activity ThirdActivity.class
SecondActivityIntent.putExtra("sentString", mString);
startActivity(SecondActivityIntent); 
//    Recieve extra from SecondActivity.class
Intent thirdActivityintent = getIntent();
String mString = thirdActivityintent.getExtra().getString("sentString");
//    This time I am calling SecondActivity.class but I will not send extra
thirdActivityintent = new Intent(ThirdActivity.this, SecondActivity.class);
startActivity(thirdActivityintent);
ThirdActivity.class setOnClickListener

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("sentString", stringName);
startActivity(intent);
//    Recieve the extra sent from MainActivity.class
Intent SecondActivityIntent = getIntent();
String mString = SecondActivityIntent .getExtras().getString("sentString");

//    Send extra to another activity ThirdActivity.class
SecondActivityIntent.putExtra("sentString", mString);
startActivity(SecondActivityIntent); 
//    Recieve extra from SecondActivity.class
Intent thirdActivityintent = getIntent();
String mString = thirdActivityintent.getExtra().getString("sentString");
//    This time I am calling SecondActivity.class but I will not send extra
thirdActivityintent = new Intent(ThirdActivity.this, SecondActivity.class);
startActivity(thirdActivityintent);
ThirdaActivity.class正在导致

空对象引用上的“java.lang.String android.os.Bundle.getString(java.lang.String)”

这个错误意味着什么?是否因为SecondActivity.class希望从任何调用活动中获得额外的值?我不打算在第三十届会议上增加额外费用,或者我是被迫这样做的。这怎么解决呢

是否因为SecondActivity.class希望从任何调用活动中获得额外的信息

这怎么解决呢

输入一个默认值和一个空检查

//    Receive the extra sent from MainActivity.class
Bundle extras = getIntent().getExtras();
String mString = "default";

if (extras != null) {
    mString = extras.getString("sentString");
}
改变

换成这样 第一个活动

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("sentString", stringName);
startActivity(intent);
在第二次活动中

//    Recieve the extra sent from MainActivity.class
Intent SecondActivityIntent = getIntent();
String mString = SecondActivityIntent .getStringExtra("sentString");
//    Send extra to another activity ThirdActivity.class
Intent thirdIntent = new Intent(SecondActivity.this, ThirdActivity.class);
thirdIntent.putExtra("sentString", mString);
startActivity(thirdIntent); 
第三十届

//    Recieve extra from SecondActivity.class
Intent thirdActivityintent = getIntent();
String mString = thirdActivityintent.getStringExtra("sentString");
//    Just finish Activity
finish();

getIntent().getExtras()
为空。。。这就意味着如果您想返回到第一步,finish()就可以工作。如何使用finish()返回2或3个步骤?使用标志CLEAR_TOP或类似的内容启动活动我无法应用此项,因为我没有默认值,该值将由最终用户提供。无法应用此项,因为mString的值将由最终用户提供最终用户正在交互会话中运行。。。我想在这里指出的一点是,当意图不存在时,您有一个空值或默认值谢谢分享。这将有助于我未来的应用程序。但在我当前的应用程序中,我无法应用它。finish()可以做到这一点,但前提是我的应用程序返回1步,但如果我想在活动堆栈上再返回一步,finish()将无法做到这一点,至少据我所知。