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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在android studio中将堆栈从一个活动传递到另一个活动相关的知识,希望对你有一定的参考价值。

我试图在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");

}
}
答案

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

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

以上是关于如何在android studio中将堆栈从一个活动传递到另一个活动的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android Studio中将Pdf文件转换为文本

如何在 Android Studio 中将文本设置为对应的图像

在实时布局检查器中手动选择活动(Android Studio 4.0)

如何在 Android Studio 中将一个 VideoView 放在另一个 VideoView 下方?

如何在我的Android Studio中将本地管理面板与我的Android应用程序连接?

在 android studio kotlin 中将数据从活动传递到片段(不重复,这些方法不起作用)