活动之间的Android Java计数器

问题描述:

我正在开发一个有两个活动的游戏。我有一个类,ModelGetter,用这种方法:活动之间的Android Java计数器

public int getPoint { 
    return point++; 
} 

当我FirstActivity按下一个按钮,我称之为modelgetter.getPoint(),当我在SecondActivity按下一个按钮,则返回0。我再打电话modelgetter1.getPoint(),它仍然返回0 。我在SecondActivity中创建了一个新的ModelGetter实例。

我不知道如何在不同的活动中使用相同的实例,并让我的变量始终增加。

+0

请格式化您的问题,使其变得更好的可读性。 – 2014-10-02 08:38:00

+0

http://*.com/q/13079302/1689695 – CocoNess 2014-10-02 09:22:18

如果你正在创建一个实例,那么数据将是不同的。如果你想要使用相同的计数器,请将其更改为静态。创建一个类是这样的:

public class ModelGetter{ 

    public static int point; 

    public static int getPoint(){ 
    return point++; 
    } 

} 

,并调用它像ModelGetter.getPoint();

+0

这是错误的。第一次将返回0. – Alboz 2014-10-02 08:46:59

+0

这不是什么操作系统问。所以我很抱歉你通知你这是没有错的。 – 2014-10-02 08:51:18

+0

他问他为什么在他调用方法后返回0 ..阅读问题。 – Alboz 2014-10-02 08:52:27

您可以通过多种方式来实现你想要什么。

  1. Make ModelGetter singleton。
  2. 使getPoint和指向静态。

我现在只有两个想法。 我认为还有其他方法。

为了得到1第一次调用它,代码应该是:

public static int getPoint { 
     return ++point; // First increment the variable point and then return it. 
    } 

声明的方法本身是静态和使用类名ModelGetter.getPoint();

记住叫它:return point ++先返回,然后递增变量点。你不想要这个。

为了能够访问来自活动相同的变量声明为类变量或“静态”

public static int point 
+0

这两个点变量,并且getPoint方法将必须是静态的,而不仅仅是变量 – Yosi199 2014-10-02 08:44:49

+0

@ Yosi199如果此方法处于从两个活动扩展的超类中,则不应该如此! – Alboz 2014-10-02 08:46:27

+0

@ Yosi199所以呢?你逃脱了? – Alboz 2014-10-02 08:51:13

您可以使用应用程序类存储的值。为了从任何活动,你应该叫http://developer.android.com/reference/android/app/Activity.html#getApplication()

要使用自定义应用程序类应用程序实例应创建一个inherites的

android.app.Application 

一类,然后添加一行到您的清单文件:

<application android:name="your.application.class" 
....