在活动

时间:2015-11-11 12:05:41

标签: android android-intent serialization parcelable

我有一个自定义课程' Game'我在活动代码的顶部初始化。然后我去另一个活动,通常我通过arraylists等但我想转移到我的自定义类......

我的自定义课程'游戏'是一堆字符串和arraylists与getter和setter mehtods。

我得到了

  

游戏不是可分割或可序列化的对象

当我尝试将其添加到intent时出现

错误。我能在这做什么想法?

//Init Instance of Game class
Game newGame = new Game();

设置我的听众。它适用于

//Setup onclick listeners
text.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent i = new Intent(this_Activity.this, next_Activity.class);
        i.putExtra("players", myList);
        i.putExtra("newGame", (Parcelable) newGame);
        startActivityForResult(i, 0);
    }
});

2 个答案:

答案 0 :(得分:5)

此外,您的班级Game可能会实施界面Serializable

public class Game implements Serializable {
    ...
}

您必须在第一项活动中更改监听器:

text.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent i = new Intent(this_Activity.this, next_Activity.class);
        i.putExtra("players", myList);
        i.putExtra("newGame", newGame);
        startActivityForResult(i, 0);
    }
});

并在onCreate中更改方法next_Activity

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Game newGame = (Game) getIntent().getExtras().getSerializable("newGame");
}

答案 1 :(得分:1)

游戏类需要实现Parcelable。