我尝试将Google地图加载到片段中。我不知道这三行应该是什么......(三行注释“问题!”)。
大多数示例在括号中使用“this”。我知道这是一个片段,而不是一个活动,所以我使用“getActivity()”代替。但是,如果我将所有三行更改为getActivity(),它也不起作用。请帮忙!提前谢谢!
public class MapFragment extends Fragment implements OnMapReadyCallback,GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener,com.google.android.gms.location.LocationListener {
private static final String TAG = "***MapFragment***";
private final int PERMISSION_CODE = 1;
private GoogleApiClient myGoogleApiClient;
private GoogleMap myMap;
private Location curLocation;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_target, container, false);
// create api client
if (myGoogleApiClient == null) {
myGoogleApiClient = new GoogleApiClient.Builder(getActivity()) // problem!
.addConnectionCallbacks(this) // problem!
.addOnConnectionFailedListener(this) // problem!
.addApi(LocationServices.API)
.build();
}
答案 0 :(得分:8)
这里需要上下文,你可以使用getActivity()
new GoogleApiClient.Builder(getActivity()) // problem!
下面两个方法需要回调,所以你的片段必须实现ConnectionCallbacks,OnConnectionFailedListener监听器。
.addConnectionCallbacks(this) // problem!
.addOnConnectionFailedListener(this) // problem!
<强>解释强>
你已经实现了它们
public class MapFragment extends Fragment implements OnMapReadyCallback,
GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener,
com.google.android.gms.location.LocationListener {
...
}
所以,&#39;这个&#39;这里指的是你的MapFragment类。当你通过这个&#39;在上面的方法中,他们使用他们的回调。