我可以为所有课程提供某个值吗? (机器人)

时间:2014-10-20 22:19:53

标签: java android

我有一个使用谷歌地图和GPS坐标的应用程序。我需要多个班级中的当前位置,并且我不想每次都使用intent.putExtra和getExtra。我可以在我的应用中为所有课程显示某个值吗?

3 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点,SharedPreferences是一个,但我认为最好的机制是使用全局上下文。您可以通过使用自定义类覆盖Application来执行此操作。

public class GlobalContext extends Application{

    private String mSomething;

    public String getSomething() {
        return mSomething;
    }

    public void setSomething(String value) {
       mSomething = value;
    }

然后在你的清单中使用

<application
        android:name="com.example.GlobalContext"
        ...

然后在所有活动中,对getApplicationContext的调用将返回该类的实例。

final GlobalContext globalContext = (GlobalContext) getApplicationContext(); 

答案 1 :(得分:1)

不能说这个答案比上面发布的答案好,但为什么不使用Singleton类?

例如

public class GPSValues{
    public static GPSValues INSTANCE = new GPSValues();

    protected double lat, lon, alt;

    public static GPSValues getInstance(){
        return INSTANCE;
    }

    public double getLat(){
        return lat;
    }
.
.
.
}

然后使用它,只需执行GPSValues.getInstance()。setLat(number)和double lat = GPSValues.getInstance()。lat

答案 2 :(得分:0)

我认为非常&#34; hacky&#34;如何实现它只是让您想要分享的信息公开。然后从其他活动访问它,例如var coordinates = MainActivity.GPScoordinates这不是最好的方法,但它当然很简单。