Как передать стек из одного занятия в другое в андроид студии - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь передать стек из одного действия в другое в 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");

}
}

1 Ответ

0 голосов
/ 30 августа 2018

когда вы вызываете getIntent().getSerializableExtra("stack1");, вы получаете объект типа Serializable, поскольку вы знаете, что этот объект имеет тип Stack<Integer>, вы можете привести его и сохранить в переменной

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...