Android 将字符串[]从一个活动传递到另一个活动
在主活动中,我发送字符串[]名称,如下所示:Android 将字符串[]从一个活动传递到另一个活动,android,string,bundle,Android,String,Bundle,在主活动中,我发送字符串[]名称,如下所示: private void sendNames() { Bundle b=new Bundle(); b.putStringArray("key", names); Intent i=new Intent(this, ListFriendsFragment.class); i.putExtras(b); } names = this.getIntent().getExtras().getStringArray("
private void sendNames() {
Bundle b=new Bundle();
b.putStringArray("key", names);
Intent i=new Intent(this, ListFriendsFragment.class);
i.putExtras(b);
}
names = this.getIntent().getExtras().getStringArray("key");
当我发送名称时,它不是100%为空,并将此代码放入一个方法中,在我获得名称后调用它
在“活动”中,我希望接收字符串[],得到的结果如下:
private void sendNames() {
Bundle b=new Bundle();
b.putStringArray("key", names);
Intent i=new Intent(this, ListFriendsFragment.class);
i.putExtras(b);
}
names = this.getIntent().getExtras().getStringArray("key");
在主活动和我想要接收字符串的活动中,names
声明如下:
private String[] names;
当我启动应获取名称的活动时,应用程序崩溃:
Caused by: java.lang.NullPointerException
at com.utm.course.friendslist.ListFriendsFragment.PrintNames(ListFriendsFragment.java:26)
at com.utm.course.friendslist.ListFriendsFragment.onCreate(ListFriendsFragment.java:20)
我做错了什么
更新
这些是我使用的Intent
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (currentSession != null) {
currentSession.onActivityResult(this, requestCode, resultCode, data);
}
}
...
private void sendNames() {
Log.d("sendNames", "started");
Bundle b=new Bundle();
b.putStringArray(key, names);
Intent i=new Intent(this, ListFriendsFragment.class);
i.putExtras(b);
}
...
private void listFriends() {
Log.d("Activity", "List Friends Activity Starting");
Intent i=new Intent(MainActivity.this,ListFriendsFragment.class);
startActivity(i);
finish();
}
看起来sendNames()
不会返回您创建的意图,您可能会调用startActivity(i)代码>此处创建的意图不再在范围内的其他地方
更改sendNames()
的签名以返回您创建的意图,并在启动活动时使用该意图
如果要使用调试器运行,请在启动活动的位置添加一个断点,并确保您传递的意图包含带有“key”字符串数组的捆绑包。只需这样做:
假设,字符串[]名称
Intent intent = new Intent(this, ListFriendsFragment.class);
intent.putExtra("key", names);
startActivity(intent);
在下一个活动中
Intent intent = getIntent();
String[] names = intent.getStringArrayExtra("key");
发送
Bundle b=new Bundle();
b.putStringArray(key, new String[]{value1, value2});
Intent i=new Intent(context, Class);
i.putExtras(b);
接收
Bundle b=this.getIntent().getExtras();
String[] array=b.getStringArray(key);
应用程序崩溃:无法启动活动。。。空指针异常
发送部分正常,没有任何错误。FriendsListFragment不是一个片段,而是它的活动。仍然在FriendsStactivity上获取NullPointerException我在我的项目中搜索了Intent
。请检查问题中的更新,因为这里很难理解。1。您的代码没有显示调用最后两个方法的位置。2.就像我写的,您在sendNames()
中创建的intent
在sendNames()
完成执行时就被破坏了。您是对的。我将SendName和listFriends放在一起,并在开始活动时发送意图。非常感谢。