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

问题描述 投票:0回答:1

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

目前我有一个名为:Stack<Integer> teamAstack = new Stack<>();的堆栈

我这样传递它:

                public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this,GameReview.class);
                intent.putExtra("stack1",teamAstack);        
                startActivity(intent);
            }

从我在网上看到的传递对象,我需要这样做吗?

接收活动

getIntent().getSerializableExtra("stack1");

我最初尝试将它设置为我在新活动中创建的新堆栈,但它说类型不同,一个是堆栈而另一个是可序列化的。我不确定如何正确传递堆栈,以便我可以开始弹出并推动新活动,感谢您的帮助!在我的所有搜索中没有专门用于堆栈的原因,这就是我遇到此问题的原因。

新活动:

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");

}
}
java android data-structures stack
1个回答
1
投票

当你调用getIntent().getSerializableExtra("stack1");时你会得到一个类型为Serializable的对象,因为你知道这个对象的类型是Stack<Integer>你可以将它转换并存储在一个变量中

Stack<Integer> stack = (Stack<Integer>)getIntent().getSerializableExtra("stack1");

© www.soinside.com 2019 - 2024. All rights reserved.