I'm trying to do an android applications that uses ViewPager. In the third page I have a map which I instantiate inside the xml of the fragment:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
class="com.google.android.gms.maps.SupportMapFragment" />
...
</RelativeLayout>
So when I try to get the map after the onStart() of the class that extends the fragment by the id of the map I get a NullPointerException.
public void onStart() {
SupportMapFragment mapFragment = (SupportMapFragment) getFragmentManager().findFragmentById(R.id.map);
mMap = mapFragment.getMap();
esperandoLoc.setVisibility(View.VISIBLE);
inicialitzarLoc();
fragmentMap = this;
if (mMap== null)
{
Toast.makeText(getActivity(),"Google Maps not Available",
Toast.LENGTH_LONG).show();
}
}
Debuggin I found out that the FragmentManager was correctly containing the five fragments of the ViewPager but the fragment of the map inside this one was not there.
Any idea of how can I get the map correctly? Thank you.
Edit I forgotten to say that I inflate the fragment that contains the map in the onCreate() inside the fragment class:
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_mapa, container, false);
The logcat error that I obtain after running is the next one:
05-18 20:41:29.725: E/AndroidRuntime(20636): FATAL EXCEPTION: main
05-18 20:41:29.725: E/AndroidRuntime(20636): Process: com.example.app, PID: 20636
05-18 20:41:29.725: E/AndroidRuntime(20636): java.lang.NullPointerException
05-18 20:41:29.725: E/AndroidRuntime(20636): at fragments.MapaTab.inicialitzarMapa(MapaTab.java:113)
05-18 20:41:29.725: E/AndroidRuntime(20636): at fragments.MapaTab.inicialitzarLoc(MapaTab.java:108)
05-18 20:41:29.725: E/AndroidRuntime(20636): at fragments.MapaTab.onActivityCreated(MapaTab.java:90)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:892)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1083)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:635)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1431)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.support.v4.view.ViewPager.populate(ViewPager.java:895)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:469)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:441)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:422)
05-18 20:41:29.725: E/AndroidRuntime(20636): at com.example.app.MainActivity.onTabSelected(MainActivity.java:136)
05-18 20:41:29.725: E/AndroidRuntime(20636): at com.android.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:577)
05-18 20:41:29.725: E/AndroidRuntime(20636): at com.android.internal.app.ActionBarImpl$TabImpl.select(ActionBarImpl.java:1105)
05-18 20:41:29.725: E/AndroidRuntime(20636): at com.android.internal.widget.ScrollingTabContainerView$TabClickListener.onClick(ScrollingTabContainerView.java:547)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.view.View.performClick(View.java:4438)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.view.View$PerformClick.run(View.java:18422)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.os.Handler.handleCallback(Handler.java:733)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.os.Handler.dispatchMessage(Handler.java:95)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.os.Looper.loop(Looper.java:136)
05-18 20:41:29.725: E/AndroidRuntime(20636): at android.app.ActivityThread.main(ActivityThread.java:5017)
05-18 20:41:29.725: E/AndroidRuntime(20636): at java.lang.reflect.Method.invokeNative(Native Method)
05-18 20:41:29.725: E/AndroidRuntime(20636): at java.lang.reflect.Method.invoke(Method.java:515)
05-18 20:41:29.725: E/AndroidRuntime(20636): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
05-18 20:41:29.725: E/AndroidRuntime(20636): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
05-18 20:41:29.725: E/AndroidRuntime(20636): at dalvik.system.NativeStart.main(Native Method)