百度地图嵌入app里面
Intent intent = null;intent = new Intent();
intent.setClass(MilkMapActivity.this, LocationActivity.class);
this.startActivity(intent);
//PoiSearchActivity poiSearchActivity = new PoiSearchActivity();
intent = new Intent();
intent.setClass(MilkMapActivity.this, PoiSearchActivity.class);
MilkMapActivity.this.startActivity(intent);
我这样在一个activity里面启动另外两个activity:LocationActivity和PoiSearchActivity行不行?
总是报空指针错误!
求大神帮助
我是菜鸟一只 --------------------编程问答-------------------- 源代码如下:package com.vison.milkmap;
import android.os.Bundle;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MKAddrInfo;
import com.baidu.mapapi.MKBusLineResult;
import com.baidu.mapapi.MKDrivingRouteResult;
import com.baidu.mapapi.MKEvent;
import com.baidu.mapapi.MKPoiResult;
import com.baidu.mapapi.MKSearch;
import com.baidu.mapapi.MKSearchListener;
import com.baidu.mapapi.MKSuggestionResult;
import com.baidu.mapapi.MKTransitRouteResult;
import com.baidu.mapapi.MKWalkingRouteResult;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.PoiOverlay;
public class PoiSearchActivity extends MapActivity {
MKSearch myMKSearch = new MKSearch();
BMapManager mBMapManager = null;
MapView mMapView = (MapView)findViewById(R.id.bmapsView);
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_milk_map);
// mBMapManager = new BMapManager(getApplication());
// mBMapManager.init("577847471455B7E58C3F08828DB22023664F4A73",null);
// super.initMapActivity(mBMapManager);
//mMapView = (MapView)findViewById(R.id.bmapsView);
// mMapView.setBuiltInZoomControls(true);//添加默认的缩放控件
// MapController mMapController = mMapView.getController();
// mMapController.setZoom(16); // 设置地图的级别 ,12适合小地图
myMKSearch = new MKSearch();
mBMapManager = new BMapManager(getApplication());
myMKSearch.init(mBMapManager, new MKSearchListener(){
public void onGetPoiResult(MKPoiResult result, int arg1, int arg2) {
if(result == null){
return;
}
PoiOverlay poioverlay = new PoiOverlay(PoiSearchActivity.this, mMapView);
poioverlay.setData(result.getAllPoi());
mMapView.getOverlays().add(poioverlay);
mMapView.getController().animateTo(result.getPoi(0).pt);//手动设定
mMapView.invalidate();
}
public void onGetPermisssionState(int error){
if(error == MKEvent.ERROR_PERMISSION_DENIED){
//permission is not exist
}
}
public void onGetNetWorkState(int error){
if(error == MKEvent.ERROR_NETWORK_CONNECT){
//connection is wrong
}
}
public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
}
public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
}
public void onGetDrivingRouteResult(MKDrivingRouteResult arg0,
int arg1) {
}
public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
}
public void onGetTransitRouteResult(MKTransitRouteResult arg0,
int arg1) {
}
public void onGetWalkingRouteResult(MKWalkingRouteResult arg0,
int arg1) {
}
});
//myMKSearch.poiSearchNearBy("KFC", new GeoPoint((int) (121.480161 * 1E6), (int) (31.239438 * 1E6)), 5000);
//myMKSearch.poiSearchInbounds("薇姿", new GeoPoint((int)(121.480362 * 1E6),(int)(31.24061 * 1E6)), new GeoPoint((int)(121.444185 * 1E6),(int)(31.200719 * 1E6)));
myMKSearch.poiSearchInCity("上海", "上海药房");
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
--------------------编程问答-------------------- package com.vison.milkmap;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.MKBusLineResult;
import com.baidu.mapapi.MKDrivingRouteResult;
import com.baidu.mapapi.MKEvent;
import com.baidu.mapapi.MKPoiResult;
import com.baidu.mapapi.MKSearch;
import com.baidu.mapapi.MKSearchListener;
import com.baidu.mapapi.MKSuggestionResult;
import com.baidu.mapapi.MKTransitRouteResult;
import com.baidu.mapapi.MKWalkingRouteResult;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.PoiOverlay;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MilkMapActivity extends MapActivity {
BMapManager mBMapManager = null;
Button satelliteBtn = null;//卫星地图按钮
Button trafficBtn = null;//交通地图按钮
MapView mMapView = null;
MKSearch myMKSearch = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_milk_map);
mBMapManager = new BMapManager(getApplication());
mBMapManager.init("577847471455B7E58C3F08828DB22023664F4A73",null);
super.initMapActivity(mBMapManager);
mMapView = (MapView)findViewById(R.id.bmapsView);
mMapView.setBuiltInZoomControls(true);//添加默认的缩放控件
MapController mMapController = mMapView.getController();
// GeoPoint point = new GeoPoint((int)(121.480161 * 1E6),(int)(31.239438 * 1E6));//人民广场坐标
// mMapController.setCenter(point);
mMapController.setZoom(16);
Intent intent = null;
intent = new Intent();
intent.setClass(MilkMapActivity.this, LocationActivity.class);
this.startActivity(intent);
//PoiSearchActivity poiSearchActivity = new PoiSearchActivity();
intent = new Intent();
intent.setClass(MilkMapActivity.this, PoiSearchActivity.class);
MilkMapActivity.this.startActivity(intent);
}
// 设置地图的级别 ,12适合小地图
//mMapView.getOverlays().add(new MyOverlay());
// /*卫星地图按钮*/
// satelliteBtn = (Button)findViewById(R.id.satelliteBTN);
// Button.OnClickListener clickListener = new Button.OnClickListener(){
//
// public void onClick(View v) {
// mMapView.setSatellite(true);
// //mMapView.invalidate();
// }
// };
// satelliteBtn.setOnClickListener( clickListener);
//
//
// /*交通地图按钮*/
// trafficBtn = (Button)findViewById(R.id.satelliteBTN);
// Button.OnClickListener clickListener2 = new Button.OnClickListener(){
//
// public void onClick(View v) {
// mMapView.setTraffic(true);
// //mMapView.invalidate();
// }
//
// };
// trafficBtn.setOnClickListener(clickListener2);
//}
//
/*POI搜索*/
/* myMKSearch = new MKSearch();
myMKSearch.init(mBMapManager, new MKSearchListener(){
public void onGetPoiResult(MKPoiResult result, int arg1, int arg2) {
if(result == null){
return;
}
PoiOverlay poioverlay = new PoiOverlay(MilkMapActivity.this, mMapView);
poioverlay.setData(result.getAllPoi());
mMapView.getOverlays().add(poioverlay);
mMapView.getController().animateTo(result.getPoi(0).pt);//手动设定
mMapView.invalidate();
}
public void onGetPermisssionState(int error){
if(error == MKEvent.ERROR_PERMISSION_DENIED){
//permission is not exist
}
}
public void onGetNetWorkState(int error){
if(error == MKEvent.ERROR_NETWORK_CONNECT){
//connection is wrong
}
}
public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
}
public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
}
public void onGetDrivingRouteResult(MKDrivingRouteResult arg0,
int arg1) {
}
public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
}
public void onGetTransitRouteResult(MKTransitRouteResult arg0,
int arg1) {
}
public void onGetWalkingRouteResult(MKWalkingRouteResult arg0,
int arg1) {
}
});
//myMKSearch.poiSearchNearBy("KFC", new GeoPoint((int) (121.480161 * 1E6), (int) (31.239438 * 1E6)), 5000);
//myMKSearch.poiSearchInbounds("薇姿", new GeoPoint((int)(121.480362 * 1E6),(int)(31.24061 * 1E6)), new GeoPoint((int)(121.444185 * 1E6),(int)(31.200719 * 1E6)));
myMKSearch.poiSearchInCity("上海", "上海药房");
}*/
protected boolean isRouteDisplayed() {
return false;
}
protected void onDestroy(){
if(mBMapManager != null){
mBMapManager.destroy();
mBMapManager = null;
}
super.onDestroy();
}
protected void onPause(){
if(mBMapManager != null){
mBMapManager.stop();
}
super.onPause();
}
protected void onResume(){
if(mBMapManager != null){
mBMapManager.start();
}
super.onResume();
}
}
package com.vison.milkmap;
import android.location.Location;
import android.location.LocationListener;
import android.os.Bundle;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.MyLocationOverlay;
public class LocationActivity extends MapActivity {
BMapManager mBMapManager = null;
MapView mMapView = null;
LocationListener mLocationListener = null;//onResume时注册此listener,onPause时需要Remove
MyLocationOverlay mLocationOverlay = null; //定位图层
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_milk_map);
mBMapManager = new BMapManager(getApplication());
mBMapManager.init("577847471455B7E58C3F08828DB22023664F4A73",null);
super.initMapActivity(mBMapManager);
mMapView = (MapView)findViewById(R.id.bmapsView);
mMapView.setBuiltInZoomControls(true);
//设置在缩放动画过程中也显示overlay,默认为不绘制
mMapView.setDrawOverlayWhenZooming(true);
// 添加定位图层
mLocationOverlay = new MyLocationOverlay(this, mMapView);
mMapView.getOverlays().add(mLocationOverlay);
// 注册定位事件
mLocationListener = new LocationListener(){
@Override
public void onLocationChanged(Location location) {
if (location != null){
GeoPoint pt = new GeoPoint((int)(location.getLatitude()*1e6),
(int)(location.getLongitude()*1e6));
mMapView.getController().animateTo(pt);
}
}
@Override
public void onProviderDisabled(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
};
}
@Override
protected void onPause() {
BMapApi app = (BMapApi)this.getApplication();
app.mBMapManager.getLocationManager().removeUpdates((com.baidu.mapapi.LocationListener) mLocationListener);
mLocationOverlay.disableMyLocation();
mLocationOverlay.disableCompass(); // 关闭指南针
//mMapView.mBmapManager;
super.onPause();
}
protected void onResume() {
BMapApi app = (BMapApi)this.getApplication();
// 注册定位事件,定位后将地图移动到定位点
app.mBMapManager.getLocationManager().requestLocationUpdates((com.baidu.mapapi.LocationListener) mLocationListener);
mLocationOverlay.enableMyLocation();
mLocationOverlay.enableCompass(); // 打开指南针
//mMapView.mBMapManager.start();
super.onResume();
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}
--------------------编程问答-------------------- 大神们帮帮我,我可以以身相许!!!! --------------------编程问答-------------------- 我第一次见这样的 = =
一个Intent执行跳转到两个界面,,
那它到底跳到哪个界面呢。。。
你哪报空了 --------------------编程问答-------------------- 他是在同一个mapview里面跳转,这样不可以?
--------------------编程问答-------------------- import com.baidu.mapapi.MKSuggestionResult;
这个怎么引用不进来
补充:移动开发 , Android