Когда я передаю lat и длинное значение в google-картах вручную с помощью другой активности, ее просто берут меня в синий океан, а не показывают пройденное местоположение [дубликат]

  • Установите JDK 7.0.55 и установите Java для Eclipse для JDK 7.0.55.
  • Создайте проект с помощью JDK 7.0.55, настроив путь сборки JDK 7.0.55.
  • Установите компилятор в Eclipse для JDK 7.0.55 с помощью меню Windows -> Предпочтения -> Java -> Компилятор - выберите 1.7.
1
задан MrPencil 7 May 2015 в 16:14
поделиться

3 ответа

Похоже, проблема связана не с вашим кодом, а, возможно, с импортом или настройкой вашего проекта.

Я получил эту работу в Android Studio, передав объект LatLng как Parcelable в Intent между двумя действиями.

В моем файле build.gradle:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:26.0.1'
    compile 'com.google.android.gms:play-services-maps:12.0.0'
    compile 'com.google.android.gms:play-services-location:12.0.0'
}

В обеих действиях используйте следующий импорт:

import com.google.android.gms.maps.model.LatLng;

тестовый код, который работал для меня:

MainActivity.java:

double pLong = -121.345678;
double pLat = 37.123456;

LatLng fromPostion = new LatLng(pLat, pLong);

Bundle args = new Bundle();
args.putParcelable("longLat_dataPrivider", fromPostion);

Intent i = new Intent(this, MapActivity.class);
i.putExtras(args);
startActivity(i);

MapActivity.java:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_activity2);

    Intent i = getIntent();

    LatLng ll = i.getParcelableExtra("longLat_dataPrivider");

    Log.d("Location", "location: " + ll.latitude + " " + ll.longitude);

}
2
ответ дан Daniel Nugent 21 August 2018 в 04:42
поделиться
  • 1
    в принимающей активности значение l1 всегда равно нулю. любая помощь? – onexf 17 January 2017 в 11:52
  • 2
    Благодаря! У меня был автоматически импортированный com.google.android.gms.maps.model.LatLng, который не реализуется. Урок выучен. – janoulle 30 April 2017 в 20:51

Вы можете добавить значения непосредственно в намерения.

intent.putExtra(KEY, VALUE)

в противном случае попробуйте использовать

args.putDouble(LON_KEY, pLong)
args.putDouble(LAT_KEY, pLat)
0
ответ дан Arturs Vancans 21 August 2018 в 04:42
поделиться

LatLng нельзя передать таким образом (к сожалению).

РЕДАКТИРОВАТЬ: Даниэль Нуджент разоблачил и доказал, что действительно LatLng IS Parcelable. Поэтому, это решение лучше, чем мое, я должен признать, и я тоже кое-что узнаю.

Я бы предложил сохранить значения lat / lng отдельно:

intent.putExtra("latitude", latLng.latitude);
intent.putExtra("longitude", latLng.longitude);

Затем извлеките их как так:

final double latitude = getIntent().getDoubleExtra("latitude");
final double longitude = getIntent().getDoubleExtra("longitude");
final LatLng = new LatLng(latitude, longitude);
2
ответ дан shkschneider 21 August 2018 в 04:42
поделиться
  • 1
    Это на самом деле является Parcelable, я просто проверил его, и код OP должен работать. [Д0] developer.android.com/reference/com/google/android/gms/maps/… – Daniel Nugent 7 May 2015 в 16:46
  • 2
    Почему я впервые получаю эти ошибки в классе DataProvider? The method getIntent() is undefined for the type DataProvider? второй; LatLng cannot be resolved ? – MrPencil 7 May 2015 в 16:51
  • 3
    @ ДаниэльНеправильный, ну. приятно поймать и хорошо знать – shkschneider 7 May 2015 в 19:23
Другие вопросы по тегам:

Похожие вопросы: