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