Android中的谷歌地图应用程序中的getMap()

时间:2013-03-29 07:45:22

标签: android

我试图在我的应用程序中调用getMap()并始终在行

处获得错误
map = ((SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map)).getMap();

显示GoogleMap的活动是作为片段实现的。可能有什么不对? 我的整个活动如下所示。

 package sg.SanThit.TrackMe;

 import android.annotation.SuppressLint;
 import android.database.Cursor;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.Toast;

 import com.google.android.gms.maps.GoogleMap;
 import com.google.android.gms.maps.SupportMapFragment;

 public class MyDetailsFragment extends Fragment {
 private TrackerInfo trackerDetailInfo;
 GoogleMap map;



public MyDetailsFragment() {    
}

@SuppressLint("NewApi")
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
        map = ((SupportMapFragment)      
        getActivity().getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
        if (map == null) {
            Toast.makeText(getActivity(), "Google Maps not available", 
    Toast.LENGTH_LONG).show();
        }
}}

1 个答案:

答案 0 :(得分:0)

使用FragmentActivity代替public class MyDetailsFragment extends Fragment

下面是加载地图的示例代码:

  public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_map);

   map = ((SupportMapFragment)      
  getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
     }

此处R.layout.activity_map是包含地图片段的XML文件。