Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在意图之间传递可包裹的对象_Java_Android_Android Intent_Parcelable - Fatal编程技术网

Java 在意图之间传递可包裹的对象

Java 在意图之间传递可包裹的对象,java,android,android-intent,parcelable,Java,Android,Android Intent,Parcelable,我在传递我在事件之间创建的对象时遇到问题。我使用该网站创建代码的可包裹元素。对象类如下所示:(Item类是另一个包含字符串和双精度的简单对象,并且已被设置为可包裹) “添加食客”活动打开后,用户在食客名称EditText中输入一个字符串,该字符串用于创建新的食客对象,并在按下“确定”按钮时返回主活动 okButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View

我在传递我在事件之间创建的对象时遇到问题。我使用该网站创建代码的可包裹元素。对象类如下所示:(Item类是另一个包含字符串和双精度的简单对象,并且已被设置为可包裹)

“添加食客”活动打开后,用户在食客名称EditText中输入一个字符串,该字符串用于创建新的食客对象,并在按下“确定”按钮时返回主活动

okButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = getIntent();
        Diner newDiner = new Diner(dinerNameEditText.getText().toString());
        intent.putExtra("newDiner", newDiner);
        setResult(RESULT_OK, intent);
        finish();
    }
});
最后,接收Diner对象并将其添加到主活动中的数组中:

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode == RESULT_OK) {
        if(requestCode == SET_REQUEST) {
            Diner newDiner = getIntent().getParcelableExtra("newDiner");
            dinerList.add(newDiner);
        }
    }
}

不幸的是,当我试图保存Diner对象并将其传递给主活动时,我的代码崩溃了,有人知道这是为什么吗?

使用
data
onActivityResult方法的第三个参数,而不是
getIntent()
用于从使用
startActivityForResult启动的活动发送的Intent获取数据:

Diner newDiner = data.getParcelableExtra("newDiner");
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode == RESULT_OK) {
        if(requestCode == SET_REQUEST) {
            Diner newDiner = getIntent().getParcelableExtra("newDiner");
            dinerList.add(newDiner);
        }
    }
}
Diner newDiner = data.getParcelableExtra("newDiner");