我试图将纬度和经度从 MainActivity 中的 onLocationChanged 传递到另一个包com.route.provider
classDataPrivider
但我收到此错误,我该怎么做?我如何在 DataProvider 中接收它们?
double pLong = location.getLongitude();
double pLat = location.getLatitude();
LatLng fromPostion = new LatLng(pLat,pLong );
Bundle args = new Bundle();
args.putParcelable("longLat_dataPrivider", fromPostion);
Bundle 类型中的方法 putParcelable(String, Parcelable) 不适用于参数 (String, LatLng)
看来问题不在于您的代码,而可能在于导入或您的项目设置。
我通过传递这个在 Android Studio 中工作LatLng
对象可打包在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);
地图活动.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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)