Android intent.getStringExtra()返回null
我真的觉得这很奇怪,我可以得到除一个以外的其他值。这是我的密码:Android intent.getStringExtra()返回null,android,android-intent,Android,Android Intent,我真的觉得这很奇怪,我可以得到除一个以外的其他值。这是我的密码: Intent intent = new Intent(this.context, SecondActivity.class); intent.putExtra("contact", n.getContact()); intent.putExtra("email", n.getEmail()); intent.putExtra("address", n.getAddress()); intent.putExtra("test", "
Intent intent = new Intent(this.context, SecondActivity.class);
intent.putExtra("contact", n.getContact());
intent.putExtra("email", n.getEmail());
intent.putExtra("address", n.getAddress());
intent.putExtra("test", "hello world");
context.startActivity(intent);
这是我将在OnCreate()下获取值的代码:
除了字符串测试
之外,其他一切都正常工作。它总是给我空值。有什么解决办法吗
问题补充:
intent.putExtra()是否不再接受第二个参数上的带引号的文本?LOL发送数据
Intent intent = new Intent(this.context,SecondActivity.class);
intent.putExtra("contact", n.getContact());
startActivity(intent);
获取数据
Bundle data = getIntent().getExtras();
contact = data.getString("contact");
在课堂上
Intent myIntent=new Intent(MainActivity.this, ResultActivity.class);
Bundle bundle=new Bundle();
bundle.putString("contact", n.getContact());
bundle.putString("email", n.getEmail());
bundle.putString("address", n.getAddress());
bundle.putString("test", "hello world");
myIntent.putExtra("MyPackage", bundle);
startActivity(myIntent);
Intent callerIntent=getIntent();
Bundle packageFromCaller=
callerIntent.getBundleExtra("MyPackage");
String contact =packageFromCaller.getString("contact");
String email =packageFromCaller.getString("email");
String address= packageFromCaller.getString("address");
String test= packageFromCaller.getString("test");
在ResultActivity.class中
Intent myIntent=new Intent(MainActivity.this, ResultActivity.class);
Bundle bundle=new Bundle();
bundle.putString("contact", n.getContact());
bundle.putString("email", n.getEmail());
bundle.putString("address", n.getAddress());
bundle.putString("test", "hello world");
myIntent.putExtra("MyPackage", bundle);
startActivity(myIntent);
Intent callerIntent=getIntent();
Bundle packageFromCaller=
callerIntent.getBundleExtra("MyPackage");
String contact =packageFromCaller.getString("contact");
String email =packageFromCaller.getString("email");
String address= packageFromCaller.getString("address");
String test= packageFromCaller.getString("test");
希望。它将帮助你 使用getApplicationContext()而不是this.context并使用startActivity而不是context.startActivity 第一项活动
Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("test", "hello world");
startActivity(intent);
第二项活动
Intent intent = getIntent();
intent.getStringExtra("test");
您需要在每个putExtra上添加.toString()和方法调用的结尾
Intent intent = new Intent(this.context, SecondActivity.class);
intent.putExtra("contact", n.getContact().toString());
intent.putExtra("email", n.getEmail().toString());
intent.putExtra("address", n.getAddress().toString());
intent.putExtra("test", "hello world");
context.startActivity(intent);
您确定n.getContact和其他方法没有返回null吗?非常确定。这就是为什么我想知道为什么特定的行返回null,它给了我一个值。最近刚试过。这真的很奇怪,我以前也这么做过。我不知道为什么那一行给我空值。我想知道如何将描述放在API中:
将扩展数据添加到意图中。名称必须包含程序包前缀,例如,应用程序com.android.contacts将使用类似“com.android.contacts.ShowAll”的名称。
我在添加程序包前缀时从未添加过程序包前缀,但效果很好……这是什么意思?您尝试过更改顺序吗?我的意思是,只需切换最后的语句,它仍然是test
您没有得到的,还是address
?试试看……请看我的解释。我知道如何传递数据。您不应该使用Bundle
,因为我们使用Intent
来放置一些数据。