2017-11-30 15 views
-2

現在のページから前のページに、ページ間でオブジェクトを渡すことは私のコードです:どのように私はここに前のページに現在のページからオブジェクトを渡すことはできませんこんにちは

最初のページ:

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()); 
      } 
     } 
    } 
} 

2ページ目:

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

data.getExtras()を作ります。 onActivityResultの中にデータが含まれています – Anonymous

+0

彼はすでにメソッドのonActivityResultにあります –

+0

この1つを削除します。intent = getIntent(); – Anonymous

答えて

-2

通常、アクティビティを開始して結果を待つと、結果がインテントで取得されます。新しいインテントの作成を削除し、インテントデータを使用します。

編集:また、2行目のアクティビティでこの行のため空に渡そうとしているarraylistにも注意してください。

maarakhContact = new ArrayList <>();第二の画面において

最初の活性におけるこれらの変化

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()); 
       } 
      } 
     } 
    } 
+0

更新されたコードをチェックしてください...これがうまくいくはずです – Anonymous

+0

はいその作品ありがとうございます! –

+0

私は些細な編集の間違いの前に起こったデータを持っています。 – Anonymous

関連する問題