主要 Activity `公共(public)类 MainActivity 扩展 AppCompatActivity {
private Object Context;
public static final String MSG="com.mp.exampleapp.ORDER";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void createBirthdayCard(View view) {
EditText text = (EditText)findViewById(R.id.nameInput);
String str = text.getText().toString();
Toast.makeText(this, "Button was clicked "+str,Toast.LENGTH_LONG).show();
getIntent().putExtra(MSG,str);
startActivity(new Intent(this,birthdaygreeting.class)) ;
ImageView image=(ImageView) findViewById(R.id.cake);
image.setImageResource(R.drawable.wish);
}
`第二个 Activity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_birthdaygreeting);
Intent intent = getIntent();
String msg = "HAPPY BIRTHDAY "+intent.getStringExtra(MainActivity.MSG);
// receive the value by getStringExtra() method
// and key must be same which is send by first activity
TextView textView= (TextView)findViewById(R.id.textView2);
textView.setText(msg);
}
运行此程序后 - 单击按钮后 - 显示的消息是“生日快乐 null”。我不知道出了什么问题。
最佳答案
出了什么问题?
您传递 put extra 的地方位于 getIntent()
中。这意味着您正在为上一个 Activity 提供额外的 Intent 。在这种情况下,当您返回并获得该额外的 Intent 时,您将获得它。但不会在下一个 Activity 中获得。现在您得到 null,因为该 Activity 不存在该额外内容。所以,它为空。
如何解决?
而不是使用这个
public void createBirthdayCard(View view) {
EditText text = (EditText)findViewById(R.id.nameInput);
String str = text.getText().toString();
Toast.makeText(this, "Button was clicked "+str,Toast.LENGTH_LONG).show();
getIntent().putExtra(MSG,str);
startActivity(new Intent(this,birthdaygreeting.class)) ;
ImageView image=(ImageView) findViewById(R.id.cake);
image.setImageResource(R.drawable.wish);
}
用这个
public void createBirthdayCard(View view) {
EditText text = (EditText)findViewById(R.id.nameInput);
String str = text.getText().toString();
Toast.makeText(this, "Button was clicked "+str,Toast.LENGTH_LONG).show();
startActivity(new Intent(this,birthdaygreeting.class).putExtra(MSG,str)) ;
ImageView image=(ImageView) findViewById(R.id.cake);
image.setImageResource(R.drawable.wish);
}
我怎么知道它会对我有帮助?
这会对你有所帮助,因为在你给出的新 Intent 中,正在给出额外的东西。因此,该值正在被发送。
关于java - 在我的应用程序的第二个 Activity 中显示 "Happy birthday null",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70819140/