2017-05-30 58 views
-1

我在包裹數據傳輸方面存在問題。我不知道如何將傳遞對象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(); 
       } 

有什麼建議?

回答

0

塊:

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"); 
...