메인 액티비티에 세개의 프래그먼트가 연결되있습니다. oncreate()에서 생성된 googleMapClient와 LocationRequest의 객체를 나머지 프래그먼트로 전달해줘야 합니다. 그런데 프래그먼트생성이 onconnect보다 먼저 되서 initLocation 객체가 null로 전달됩니다 ㅠㅠㅠㅠㅠㅠ onConnected함수 호출 후 getItem함수가 호출되게 하는 방법 없을까요?
@Override
public void onConnected(Bundle bundle) {
Location initLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
if ( ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED ) {}
LocationServices.FusedLocationApi
.requestLocationUpdates(mGoogleApiClient, mLastLocation, this);
}
public static class MainPagerAdapter extends FragmentPagerAdapter {
private FragmentManager fm;
public MainPagerAdapter(FragmentManager fm) {
super(fm);
this.fm = fm;
}
@Override
public Fragment getItem(int position) {
Fragment fragment = fm.findFragmentByTag("android:switcher:"+viewPager.getId()+":"+getItemId(position));
LocationParecelInfo info=new LocationParecelInfo(mGoogleApiClient,mLastLocation);
if(fragment != null)
return fragment;
Bundle args;
args = new Bundle();
switch (position){
case 0:
args.putSerializable("sights", sights);
args.putSerializable("categories", categories);
return SightCategory.newInstance(args);
case 1:
args.putParcelable("locationInfo", info);
return MyInfoFragment.newInstance(args);
case 2:
args.putSerializable("rentalList", rentalList);
args.putSerializable("comfortsList", comfortsList);
args.putSerializable("toiletList", toiletList);
args.putParcelable("locationInfo", info);
return FacilitiesFragment.newInstance(args);
default:
return SightCategory.newInstance(args);
}
}
@Override
public int getCount() {
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position){
case 0:
return "관광지";
case 1:
return "내 정보";
case 2:
return "편의시설";
default:
return super.getPageTitle(position);
}
}
}