如何通过意图传递Parceable?

时间:2019-05-03 21:55:09

标签: java android android-intent null

我在接收来自其他活动的意图带来的附加功能时遇到问题。当我运行代码并在实际创建对象的行上使用断点时,我可以看到它是使用调试器创建的。我可以看到该对象已放入putExtra()函数中。

通过使用getParceableExtra()函数到达结果活动时,在收到意图后总是返回null。

//正在接收活动

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    if(requestCode == 1){
        if(resultCode == Activity.RESULT_OK){
            Intent extras = getIntent();
            if(extras != null){
                Goals addToList = extras.getParcelableExtra(GOAL_PASSING);
                if(addToList != null)
                    mGoal.add(addToList);
            }
        }
    }
}

//在发送活动中

    incrementMGoal = (findViewById(R.id.create_goal_button));
    incrementMGoal.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent returnIntent = new Intent();
            Goals newGoal = new Goals(GT,GD,GDueDate);
            returnIntent.putExtra(MainActivity.GOAL_PASSING,newGoal);
            setResult(Activity.RESULT_OK,returnIntent);
            finish();
        }
    });

我希望在创建要传递putExtra的意图并将其接收后放入数组中。我只是收到null。

1 个答案:

答案 0 :(得分:0)

问题在于您的代码意图错误,而不是onActivityResult参数data

Goals addToList = data.getParcelableExtra(GOAL_PASSING);

所以您应该这样做

Goals addToList = data.getParcelableExtra(GOAL_PASSING);