首页 > 解决方案 > 创建 google API 客户端时 getContext 不起作用

问题描述

我正在研究谷歌地理围栏。我在我的项目中使用 tabView,并且在创建 google API 客户端时无法使用“this”关键字作为上下文。如果我调试到我的手机,应用程序就会崩溃。帮我

这是我的java代码:

private Context mContext;// ive tried using like this,


mClient = new GoogleApiClient.Builder(getContext()) //ive also tried with getActivity();
        .addConnectionCallbacks((GoogleApiClient.ConnectionCallbacks) getContext())
        .addOnConnectionFailedListener((GoogleApiClient.OnConnectionFailedListener) getContext())
        .addApi(LocationServices.API)
        .addApi(Places.GEO_DATA_API)
        .enableAutoManage((FragmentActivity) mContext,
    (GoogleApiClient.OnConnectionFailedListener) getContext())
        .build();

mClient.connect();
mGeofencing = new Geofencing(mClient,getContext());

标签: android

解决方案


我认为您正在使用片段

getActivity()请改用getContext()

private Context mContext;


mClient = new GoogleApiClient.Builder(getActivity()) 
    .addConnectionCallbacks((GoogleApiClient.ConnectionCallbacks) getActivity())
    .addOnConnectionFailedListener((GoogleApiClient.OnConnectionFailedListener) getActivity())
    .addApi(LocationServices.API)
    .addApi(Places.GEO_DATA_API)
    .enableAutoManage((FragmentActivity) mContext, (GoogleApiClient.OnConnectionFailedListener) getActivity())
    .build();

mClient.connect();
mGeofencing = new Geofencing(mClient,getActivity());

我希望这能帮到您...

谢谢你


推荐阅读