Java 如何在android studio中将堆栈从一个活动传递到另一个活动

Java 如何在android studio中将堆栈从一个活动传递到另一个活动,java,android,data-structures,stack,Java,Android,Data Structures,Stack,我正在android studio中尝试将一个堆栈从一个活动传递到另一个活动 目前,我有一个堆栈名为: Stack teamAstack=新堆栈 我是这样传递的: public void onClick(View view) { Intent intent = new Intent(MainActivity.this,GameReview.class); intent.putExtra("stack1

我正在android studio中尝试将一个堆栈从一个活动传递到另一个活动

目前,我有一个堆栈名为: Stack teamAstack=新堆栈

我是这样传递的:

                public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this,GameReview.class);
                intent.putExtra("stack1",teamAstack);        
                startActivity(intent);
            }
从我在网上看到的传递对象来看,我需要这样做吗

接收活动

getIntent.getSerializableExtrastack1

我最初尝试将它设置为我在新活动中创建的新堆栈,但它表示类型不同,一个是堆栈,另一个是可序列化的。我不确定如何才能正确地传递堆栈,以便我可以从新活动开始弹出和推送,谢谢您的帮助!我所有的搜索中都没有专门针对堆栈的内容,这就是为什么我会遇到这个问题

新活动:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import java.util.Stack;

public class GameReview extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game_review);

    Stack<Integer> stack11 = (Stack<Integer>)getIntent().getSerializableExtra("stack1");
    Stack<Integer> stack22 = (Stack<Integer>)getIntent().getSerializableExtra("stack2");

}
}
调用getIntent.getSerializableExtrastack1时;您将获得一个Serializable类型的对象,因为您知道该对象是Stack类型的,所以可以强制转换它并将其存储在变量中


Stack Stack=StackgetIntent.getSerializableExtrastack1

是的,您所做的是正确的,您只需要强制转换:Stack Stack=Stack intent.getSerializableExtrastack1;-告诉Java你确定它是Serializable的某个子类型,特别是一个堆栈。Sweet我现在理解它在逻辑上应该如何工作,但是当我尝试进入这个活动时它一直崩溃,我认为这是这个页面上的一些东西,因为如果我不在上面放代码,它不会崩溃。活动上只有两行代码,因此我不确定出了什么问题。新的活动代码是在主帖子上编辑的,我不知道会出什么问题。stack2也是以同样的方式传递的吗?错误是什么?是的,它是以相同的方式传递的,但是没有错误,它只是不加载屏幕并返回到不同的活动,但是如果我注释掉代码,它将转到正确的活动,因此出现了一些错误,但我看不到。