无法通过 Intent 传递 Parcelable

Can't Pass Parcelable via Intent

我有两个活动:

和一个 object class :

我的 ListViewActivity activity 中有一个列表视图,当我单击添加按钮时,这将启动 AddActivity 。在 AddActivity 中,当用户输入标题时,选择日期、时间和类别,我希望 AddActivity 创建待办事项 object 并将其传递回 ListViewActivity。

抱歉,我无法共享代码本身,它总是出现此错误,所以我在 github 上上传了,请检查一下。

再次抱歉。 非常感谢。

您只需修复 ListViewActivity 中的 onActivityResult 方法:

  1. 因为您在 AddActivity“setResult(ListViewActivity.ADD_REQUEST_CODE, intent);”中设置结果代码 ADD_REQUEST_CODE,您应该使用ListViewActivity 中的“if (resultCode == ADD_REQUEST_CODE) {”不是 RESULT_OK.

  2. 您应该从 onActivityResult 接收 intent,而不是 ListViewActivity 的 intent。 getIntent() 给出 ListViewActivity 的意图。所以使用数据变量:

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