如何在不使用意图的情况下传递HashMap值?

时间:2019-03-23 15:02:30

标签: android google-maps

每3秒钟,我会收到一条包含纬度和经度的短信。要将坐标从SmsReceiver.class发送到MapActivity.class,我使用了Intent,这会使Google地图在每次接收坐标时刷新。每次我收到一条消息时,它都会使用另一个MapActivity.class。如何在不使用Intent的情况下传递HashMap值?

这是我保存存储在SMSReceiver.class上的HashMap值的方式。

private HashMap<String, Double> coordinates = new HashMap<String, Double>();
 DatabaseReference mRef = databaseLocation.push();
            double latitudedb = Double.parseDouble(separatedSMS[1]);
            double longitudedb = Double.parseDouble(separatedSMS[3]);
coordinates.put("latitude", latitudedb);
        coordinates.put("longitude", longitudedb);

我想将HashMap值添加到MapActivity.class中,这样我就可以在地图上放置一个标记,该标记的位置与我收到的实际坐标有关。

1 个答案:

答案 0 :(得分:0)

您可以为此使用类和静态值:

public class CommunActivit {

private static HashMap<String, Float> ListOf;


static {
    ListOf = new HashMap<>();
}



  public static HashMap<String, Float> getListOf() {
    return ListOf;
}

public static void setListOf(HashMap<String, Float> listOf) {
    ListOf = listOf;
}

}

在您的活动中创建CommunActivit的实例 例如:

CommunActivit obj = new CommunActivit();

获取坐标时,您可以简单地调用obj.setListOf(yourhashmap),而要获取坐标时,则只需调用yourhashmap = obj.getListOf();

我在我的应用程序中使用了它,并且效果很好。