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行不行?
总是报空指针错误!
求大神帮助
我是菜鸟一只

解决方案 »

  1.   

    源代码如下: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;
    }}
      

  2.   

    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;
    }
    }
      

  3.   

    我第一次见这样的 = =
     一个Intent执行跳转到两个界面,,
     那它到底跳到哪个界面呢 你哪报空了
      

  4.   

    他是在同一个mapview里面跳转,这样不可以?
      

  5.   

    import com.baidu.mapapi.MKSuggestionResult;这个怎么引用不进来