将对象从活动传递到活动android eclipse

时间:2015-02-07 17:54:07

标签: java android eclipse

我是初学者,我不了解Android中的对象是如何工作的。

例如,我试图做简单的游戏。游戏有两支球队,每支球队有两名球员。每个团队都有一个游戏的每个回合,并且在每个回合中只玩一个玩家,所以我必须记住每个玩家转向和团队得分的时间。

我正在考虑创建类游戏,使用变量NextTeam(我存储有关正在播放的团队的信息),NextFirstTeamPlayer,NextSecondTeamPlayer,FirstTeamScore和SecondTeamScore。

此外,我在比赛期间还需要两项活动。我启动它们并销毁它们。

我的问题是:

1)如果我在一个活动中创建Game类的对象,当我销毁创建对象的活动时,该对象是否会被销毁?

2)将该对象从一个活动传递到另一个活动的最佳方法是什么? 我唯一的想法是将对象变量的值传递给已启动的新活动,并在新活动中创建具有传递值的新对象。有没有更好的方法呢?

3)我想在少数活动中使用Game类。我已将类声明为分离的Java文件。如何在我想要使用该类的每个活动中包含该文件?

2 个答案:

答案 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();