Как передать значение HashMap без использования намерения? - PullRequest
0 голосов
/ 23 марта 2019

Каждые 3 секунды я получаю текстовые сообщения, содержащие широту и долготу. Чтобы отправить координаты из моего SmsReceiver.class в мой MapActivity.class, я использовал намерение, в результате чего моя карта Google обновляется каждый раз, когда я получаю координаты. Каждый раз, когда я получаю сообщение, оно предназначается для другого MapActivity.class. Как передать значения HashMap без использования намерения?

Так я сохраняю значения HashMap, которые хранятся в моем SMSReceiver.class.

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 голосов
/ 23 марта 2019

для этого можно использовать класс и статическое значение:

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

Я использую это в своем приложении, и он работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...