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