您好我无法将当前页面中的对象传递到上一页这里是我的代码:
第一页:
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, AddContactActivity.class);
intent.putExtra("contact", contacts);
startActivityForResult(intent, CONTENT_CODE_ADD);
}
});
和此:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CONTENT_CODE_ADD){
if(resultCode == 2){
Intent intent = getIntent();
Bundle args = intent.getBundleExtra("BUNDLE");
if(args != null) {
contacts = (ArrayList<Contact>) args.getSerializable("ARRAYLIST");
empty.setText(contacts.get(0).getName().toString());
}
}
}
}
第二页:
contact = new Contact();
contact.setName(editName.getText().toString());
maarakhContact = new ArrayList<>();
Intent intent = new Intent();
Bundle args = new Bundle();
args.putSerializable("ARRAYLIST",(maarakhContact));
intent.putExtra("BUNDLE",args);
setResult(2, intent);
finish();
答案 0 :(得分:-2)
通常当你启动一个活动并等待结果时,会在intent中获得结果。移动创建新意图并使用意图数据。
编辑:另请注意,由于第二个活动中的此行,您尝试传入的arraylist为空。
maarakhContact = new ArrayList&lt;&gt;();
在第二个屏幕中进行这些更改
contact = new Contact();
contact.setName(editName.getText().toString());
maarakhContact = new ArrayList<>();
//Add the contact class to arraylist
maarakhContact.add(contact);
Intent intent = new Intent();
intent.putExtra("mylist", maarakhContact);
setResult(2, intent);
finish();
在第一项活动中
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CONTENT_CODE_ADD){
if(resultCode == 2){
ArrayList<Contact> myList = (ArrayList<Contact>) data.getSerializableExtra("mylist");
if(myList != null) {
empty.setText(myList.get(0).getName().toString());
}
}
}
}