onActivityResult上的包裹数据传输

问题描述:

我在包裹数据传输方面存在问题。我不知道如何将传递对象parcelable转换为onActivityResult。 DreamDatabase实现Parcelable。onActivityResult上的包裹数据传输

MyDreams.class

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    switch (item.getItemId()) { 
     case R.id.action_addream: 
      Intent intent = new Intent(getActivity(), AddDreamActivity.class); 
      startActivityForResult(intent, REQUEST_CODE_CREATE); 
      return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK) { 
     if (requestCode == REQUEST_CODE_CREATE) { 
        DreamDatabase dreamDatabase = data.getData() 
        myDreamAdapter.addDream(dreamDatabase); 
        Toast.makeText(getActivity(), "Dreamd was added", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 

AddDreams.class

if (!hasError) { 
        String selectDreamString = selectDreamTextView.getText().toString(); 
        DreamDatabase dreamDatabase = new DreamDatabase(dreamTitleString, dreamDescriptionString, getCurrentDate(), selectDreamString); 
        Intent intent = new Intent(); 
        intent.putExtra("dream", dreamDatabase); 
        setResult(RESULT_OK, intent); 
        super.finish(); 
       } 

有什么建议?

块:

if (requestCode == REQUEST_CODE_CREATE) { 
        DreamDatabase dreamDatabase = data.getData() 
        myDreamAdapter.addDream(dreamDatabase); 
        Toast.makeText(getActivity(), "Dreamd was added", Toast.LENGTH_SHORT).show(); 
     } 

应改为:

DreamDatabase dreamDatabase = data.getParcelableExtra("dream"); 
...