我有两项 Activity :
- ListViewActivity
- 添加 Activity
和一个对象类:
- todoObj
我的 ListViewActivity Activity 中有一个 ListView ,当我单击添加按钮时,这将启动 AddActivity 。在 AddActivity 中,当用户输入标题时,选择日期、时间和类别,我希望 AddActivity 创建一个待办事项对象并将其传递回 ListViewActivity。
抱歉,我无法分享代码本身,它总是出现此错误,所以我上传到 github请检查一下。
再次抱歉。 非常感谢。
最佳答案
您需要修复ListViewActivity中的onActivityResult方法:
由于您在 AddActivity“setResult(ListViewActivity.ADD_REQUEST_CODE, Intent);”中设置了结果代码 ADD_REQUEST_CODE,因此您应该使用“if (resultCode == ADD_REQUEST_CODE) {”在 ListViewActivity 中不是 RESULT_OK。
您应该从 onActivityResult 接收 Intent ,而不是 ListViewActivity 的 Intent 。 getIntent() 给出 ListViewActivity 的 Intent 。因此使用数据变量:
onActivityResult(int requestCode, int resultCode, Intent data)
最终代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ADD_REQUEST_CODE) {
if (resultCode == ADD_REQUEST_CODE) {
Log.i("ListViewActivity", "Returned onActivityResult");
TodoObj todoObj = (TodoObj) data.getParcelableExtra("EXTRA_TODO");
Toast.makeText(ListViewActivity.this, "" + todoObj.getmYear(),
Toast.LENGTH_SHORT).show();
}
}
}
关于java - 无法通过 Intent 传递 Parcelable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33256185/