Похоже, проблема связана не с вашим кодом, а, возможно, с импортом или настройкой вашего проекта.
Я получил эту работу в 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);
}
Вы можете добавить значения непосредственно в намерения.
intent.putExtra(KEY, VALUE)
в противном случае попробуйте использовать
args.putDouble(LON_KEY, pLong)
args.putDouble(LAT_KEY, pLat)
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);
The method getIntent() is undefined for the type DataProvider
? второй; LatLng cannot be resolved
?
– MrPencil
7 May 2015 в 16:51