我是初学者,我不了解Android中的对象是如何工作的。
例如,我试图做简单的游戏。游戏有两支球队,每支球队有两名球员。每个团队都有一个游戏的每个回合,并且在每个回合中只玩一个玩家,所以我必须记住每个玩家转向和团队得分的时间。
我正在考虑创建类游戏,使用变量NextTeam(我存储有关正在播放的团队的信息),NextFirstTeamPlayer,NextSecondTeamPlayer,FirstTeamScore和SecondTeamScore。
此外,我在比赛期间还需要两项活动。我启动它们并销毁它们。
我的问题是:
1)如果我在一个活动中创建Game类的对象,当我销毁创建对象的活动时,该对象是否会被销毁?
2)将该对象从一个活动传递到另一个活动的最佳方法是什么? 我唯一的想法是将对象变量的值传递给已启动的新活动,并在新活动中创建具有传递值的新对象。有没有更好的方法呢?
3)我想在少数活动中使用Game类。我已将类声明为分离的Java文件。如何在我想要使用该类的每个活动中包含该文件?
答案 0 :(得分:2)
1)如果我在一个活动中创建Game类的对象,当我销毁创建对象的活动时,该对象是否会被销毁?
是的,某些时候 它将从内存中销毁。
2)将该对象从一个活动传递到另一个活动的最佳方法是什么?我唯一的想法是将对象变量的值传递给已启动的新活动,并在新活动中创建具有传递值的新对象。有没有更好的方法呢?
您可以使用Intents传递对象。对象应该实现Serializable类或Parcelable。第二个更快。更多信息here。
3)我想在少数活动中使用Game类。我已将类声明为分离的java文件。如何在我想要使用该类的每个活动中包含该文件?
使用您需要使用的每个类顶部的import
关键字导入它。
你有没有想过Game对象的Singleton模式?我想你每次只有一个Game实例,所以这可能是个好主意。
答案 1 :(得分:1)
您需要扩展Application类以创建可供所有类使用的全局变量。 你应该做类似的事情。
public class Globals extends Application{
private int data=200;
public int getData(){
return this.data;
}
public void setData(int d){
this.data=d;
}
}
将此类名添加到清单
<application
android:name=".Globals"
.... />
你会像
那样称呼它Globals g = (Globals)getApplication();
int data=g.getData();