0

I'm using actionbar tabs with fragment, but i'm having trouble. I'm getting NullPointerException with setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)

The code is this:

MAIN ACTIVITY

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // setup action bar for tabs
        ActionBar actionBar = getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        actionBar.setDisplayShowTitleEnabled(false);

        ActionBar.Tab tabInserir = actionBar.newTab().setText("Inserir");
        ActionBar.Tab tabListar = actionBar.newTab().setText("Listar");

        Fragment FragmentInserir = new InserirFilmeFragment();
        Fragment FragmentListar = new ListarFilmeFragment();

        tabInserir.setTabListener(new MyTabsListener(FragmentInserir));
        tabListar.setTabListener(new MyTabsListener(FragmentListar));

        actionBar.addTab(tabInserir);
        actionBar.addTab(tabListar);
    }

    class MyTabsListener implements ActionBar.TabListener {
        public Fragment fragment;

        public MyTabsListener(Fragment fragment) {
            this.fragment = fragment;
        }

        @Override
        public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
            //do what you want when tab is reselected, I do nothing
        }

        @Override
        public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
            ft.replace(R.id.action_bar_container, fragment);
        }

        @Override
        public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
            ft.remove(fragment);
        }
    }
}

MAIN ACTIVITY XML

<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <LinearLayout
        android:id="@+id/fragment_placeholder"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    </LinearLayout>

</LinearLayout>

INSERIR FRAGMENT

public class InserirFilmeFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_inserir_filme, container, false);
    }
}

LISTAR FRAGMENT

public class ListarFilmeFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_listar_filme, container, false);
    }
}

Anyone know what i can do?

Felipe A.
  • 929
  • 3
  • 12
  • 28

0 Answers0