Java 将字符串从活动传递到片段

Java 将字符串从活动传递到片段,java,android,android-activity,android-fragments,google-play-services,Java,Android,Android Activity,Android Fragments,Google Play Services,我的activity代码段实现了GooglePlayServicesClient.ConnectionCallbacks, GooglePlayServicesClient.OnConnectionFailedListener: @Override public void onConnected(Bundle bundle) { getCurrentLocation(); } public void getCurrentLocation() { if (t

我的activity代码段实现了
GooglePlayServicesClient.ConnectionCallbacks,
GooglePlayServicesClient.OnConnectionFailedListener

@Override
public void onConnected(Bundle bundle) {
        getCurrentLocation();        
}
public void getCurrentLocation() {
    if (this.servicesConnected()) {
        mLocationClient.requestLocationUpdates(mLocationRequest, this);
        mCurrentLocation = mLocationClient.getLastLocation();
        ArrayList<Address> addresses = null;
        try {
            latitude = String.valueOf(mCurrentLocation.getLatitude());
            longitude = String.valueOf(mCurrentLocation.getLongitude());
            addresses = (ArrayList<Address>) gCoder.
                    getFromLocation(mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude(), 1);
            mLocationClient.disconnect();
        } catch (IOException e) {
            e.printStackTrace();
        } 
        if (addresses != null && addresses.size() > 0) {
            Log.wtf("Arsnal", "" + addresses.get(0).getLocality());
        } else {
            Toast.makeText(this, R.string.no_address_found, Toast.LENGTH_LONG).show();
        }
        Log.wtf("Location", "Lat " + latitude + " - lon " + longitude);
    }
}
我在这一行得到了NPE

 Log.wtf("check","Latitude"+((MyActivuty)getActivity()).latitude+
"Longitude"+((MyActivuty)getActivity()).longitude);
因为onComplete方法是在片段的OnCreate()之后调用的。我如何解决这个问题?
感谢您的帮助!谢谢

在片段内部创建回调函数:

public void initFragment() {
    // Coordinates are available do something with them
    // ((MyActivuty)getActivity()).latitude
    // ((MyActivuty)getActivity()).longitude
}
MyFrag myFrag
...
myFrag = new MyFrag();
...
然后在活动中保存对创建片段的引用:

public void initFragment() {
    // Coordinates are available do something with them
    // ((MyActivuty)getActivity()).latitude
    // ((MyActivuty)getActivity()).longitude
}
MyFrag myFrag
...
myFrag = new MyFrag();
...
并在坐标就绪时调用片段的函数:

public void getCurrentLocation() {
    ...
    myFrag.initFragment();
}

有两种选择。1) 在共享首选项中保存数据。2) 通过Bundle传递数据。什么时候调用getCurrentLocation?在OnOnOnActed overidden方法中调用它?您的片段什么时候使用坐标?您也可以使用片段的
setArgument()
作为参数传递。谢谢这为我工作@user3249477请你能告诉我你对这个问题的看法吗?当然它确实有效。但我的案例中我使用了多个片段,我是使用适配器创建的,而不是使用单个片段