我有一个使用谷歌地图和GPS坐标的应用程序。我需要多个班级中的当前位置,并且我不想每次都使用intent.putExtra和getExtra。我可以在我的应用中为所有课程显示某个值吗?
答案 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
这不是最好的方法,但它当然很简单。