如何在导航抽屉中制作标签

时间:2016-02-05 07:04:39

标签: java android android-fragments tabs navigation-drawer

我使用片段创建导航抽屉,使用片段创建操作栏标签。但是当我编译它时,我遇到了问题。我的应用程序不幸停止工作。我的代码没有错误,我很困惑,哪有错?

MainActivity.java

public class MainActivity extends FragmentActivity {

// Within which the entire activity is enclosed
private DrawerLayout mDrawerLayout;

// ListView represents Navigation Drawer
private ListView mDrawerList;

// ActionBarDrawerToggle indicates the presence of Navigation Drawer in the action bar
    private ActionBarDrawerToggle mDrawerToggle;

    // Title of the action bar
    private String mTitle = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mTitle = "Sistem Pakar Ayam";
        getActionBar().setTitle(mTitle);

        // Getting reference to the DrawerLayout
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

        mDrawerList = (ListView) findViewById(R.id.drawer_list);

        // Getting reference to the ActionBarDrawerToggle
        mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
                R.drawable.ic_drawer, R.string.drawer_open,
                R.string.drawer_close) {

            /** Called when drawer is closed */
            public void onDrawerClosed(View view) {
                getActionBar().setTitle(mTitle);
                invalidateOptionsMenu();

            }

            /** Called when a drawer is opened */
            public void onDrawerOpened(View drawerView) {
                getActionBar().setTitle("Sistem Pakar Ayam");
                invalidateOptionsMenu();
            }

        };

        // Setting DrawerToggle on DrawerLayout
        mDrawerLayout.setDrawerListener(mDrawerToggle);

        // Creating an ArrayAdapter to add items to the listview mDrawerList
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(),
                R.layout.drawer_list_item, getResources().getStringArray(R.array.menus));

        // Setting the adapter on mDrawerList
        mDrawerList.setAdapter(adapter);

        // Enabling Home button
        getActionBar().setHomeButtonEnabled(true);

        // Enabling Up navigation
        getActionBar().setDisplayHomeAsUpEnabled(true);

        // Setting item click listener for the listview mDrawerList
        mDrawerList.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {

                // Getting an array of rivers
                String[] menuItems = getResources().getStringArray(R.array.menus);

                // Currently selected river
                mTitle = menuItems[position];
                if (mTitle.equals("Beranda")){
                     FragmentHome fragmenthome = new FragmentHome();
                        FragmentManager fragmentManager = getFragmentManager();

                        // Creating a fragment transaction
                        FragmentTransaction ft = fragmentManager.beginTransaction();

                        // Adding a fragment to the fragment transaction
                        ft.replace(R.id.content_frame, fragmenthome);

                        // Committing the transaction
                        ft.commit();

                }
                else if (mTitle.equals("Diagnosis")){
                    FragmentDiagnosis fragmentdiagnosis = new FragmentDiagnosis();
                    FragmentManager fragmentManager = getFragmentManager();

                    // Creating a fragment transaction
                    FragmentTransaction ft = fragmentManager.beginTransaction();

                    // Adding a fragment to the fragment transaction
                    ft.replace(R.id.content_frame, fragmentdiagnosis);

                    // Committing the transaction
                    ft.commit();
                }
                else if (mTitle.equals("Data Penyakit")){
                    FragmentPenyakit fragmentpenyakit = new FragmentPenyakit();
                    FragmentManager fragmentManager = getFragmentManager();

                    // Creating a fragment transaction
                    FragmentTransaction ft = fragmentManager.beginTransaction();

                    // Adding a fragment to the fragment transaction
                    ft.replace(R.id.content_frame, fragmentpenyakit);

                    // Committing the transaction
                    ft.commit();
                }
                else if (mTitle.equals("Bantuan")){
                    FragmentBantuan fragmentbantuan = new FragmentBantuan();
                    FragmentManager fragmentManager = getFragmentManager();

                    // Creating a fragment transaction
                    FragmentTransaction ft = fragmentManager.beginTransaction();

                    // Adding a fragment to the fragment transaction
                    ft.replace(R.id.content_frame, fragmentbantuan);

                    // Committing the transaction
                    ft.commit();
                }
                else if (mTitle.equals("Tentang")){
                    FragmentTentang fragmenttentang = new FragmentTentang();
                    FragmentManager fragmentManager = getFragmentManager();

                    // Creating a fragment transaction
                    FragmentTransaction ft = fragmentManager.beginTransaction();

                    // Adding a fragment to the fragment transaction
                    ft.replace(R.id.content_frame, fragmenttentang);

                    // Committing the transaction
                    ft.commit();
                }

                // Closing the drawer
                mDrawerLayout.closeDrawer(mDrawerList);

            }
        });

        //Menampilkan Fragment Home yang Tampil Pertama Kali

        FragmentHome fragmenthome = new FragmentHome();
        FragmentManager fragmentManager = getFragmentManager();

        FragmentTransaction ft = fragmentManager.beginTransaction();

        ft.replace(R.id.content_frame, fragmenthome);

        ft.commit();

        getActionBar().setTitle("Beranda");
    }


        @Override
        protected void onPostCreate(Bundle savedInstanceState) {
            super.onPostCreate(savedInstanceState);
            mDrawerToggle.syncState();
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            if (mDrawerToggle.onOptionsItemSelected(item)) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }

        /** Called whenever we call invalidateOptionsMenu() */
        @Override
        public boolean onPrepareOptionsMenu(Menu menu) {
            // If the drawer is open, hide action items related to the content view
            boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);

            menu.findItem(R.id.menu_settings).setVisible(!drawerOpen);
            return super.onPrepareOptionsMenu(menu);
        }

        public void onBackPressed() {
            new AlertDialog.Builder(this)
            .setMessage("Apa kalian ingin Keluar?")
            .setCancelable(false)
            .setPositiveButton("Ya", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
            MainActivity.this.finish();
            }
            })
            .setNegativeButton("Tidak", null)
            .show();
            }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

FragmentTentang.java

public class FragmentTentang extends Fragment {

    ViewPager mViewPager;


    public View onCreateView(LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.activity_fragment_tentang, container, false);
        return v;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        final ActionBar actionBar = getActivity().getActionBar();

        // Specify that tabs should be displayed in the action bar.
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        // Create a tab listener that is called when the user changes tabs.
        ActionBar.TabListener tabListener = new ActionBar.TabListener() {
            @Override
            public void onTabReselected(Tab tab, FragmentTransaction ft) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onTabSelected(Tab tab, FragmentTransaction ft) {
                // TODO Auto-generated method stub
                mViewPager.setCurrentItem(tab.getPosition());


            }

            @Override
            public void onTabUnselected(Tab tab, FragmentTransaction ft) {
                // TODO Auto-generated method stub

            }

        };

        // Add 3 tabs, specifying the tab's text and TabListener
        for (int i = 0; i < 3; i++) {
            actionBar.addTab(
                    actionBar.newTab()
                            .setText("Aplikasi" + (i + 1))
                            .setTabListener(tabListener));
        }
        for (int i = 1; i < 3; i++) {
            actionBar.addTab(
                    actionBar.newTab()
                            .setText("Pengembang" + (i + 1))
                            .setTabListener(tabListener));
        }
        for (int i = 2; i < 3; i++) {
            actionBar.addTab(
                    actionBar.newTab()
                            .setText("Coba" + (i + 1))
                            .setTabListener(tabListener));
        }

    }
}

我想要我的应用程序就像这张图片。

Tentang

0 个答案:

没有答案