java.lang.String android.os.Bundle.getString(java.lang.String)
我的MainActivity.class正在通过setOnClickListener调用putExtra到SecondActivity.classjava.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
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()将无法做到这一点,至少据我所知。