我试图在我的应用程序中调用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();
}
}}
答案 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文件。