如何在appcompact v7工具栏中添加带通知计数的通知按钮?

时间:2015-10-14 09:54:53

标签: android toolbar

在我的android项目中,我想在工具栏中显示通知count.i我使用Theme.AppCompat.Light.NoActionBar作为我的主题。 menu.xml中的菜单项未显示。请帮帮我。这是我的代码。

    setContentView(R.layout.activity_main);

    mTitle = mDrawerTitle = getTitle();
    navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
    navMenuIcons = getResources()
            .obtainTypedArray(R.array.nav_drawer_icons);
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
    toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
    setSupportActionBar(toolbar);
    toolbartitle = (TextView) findViewById(R.id.titletool);

    // set a custom shadow that overlays the main content when the drawer
    // opens
    mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow,
            GravityCompat.START);

    // set up the drawer's list view with items and click listener
    /*
     * mDrawerList.setAdapter(new ArrayAdapter<String>(this,
     * R.layout.drawer_list_item, mPlanetTitles));
     * mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
     */

    navDrawerItems = new ArrayList<NavDrawerItem>();

    // adding nav drawer items to array

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons
            .getResourceId(0, -1)));

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons
            .getResourceId(1, -1)));

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons
            .getResourceId(2, -1)));

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons
            .getResourceId(3, -1)));

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons
            .getResourceId(4, -1)));

    navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons
            .getResourceId(5, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[6], navMenuIcons
            .getResourceId(6, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[7], navMenuIcons
            .getResourceId(7, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[8], navMenuIcons
            .getResourceId(8, -1)));

    // Recycle the typed array
    navMenuIcons.recycle();

    mDrawerList.setOnItemClickListener(new SlideMenuClickListener());

    // setting the nav drawer list adapter
    adapter = new NavDrawerListAdapter(getApplicationContext(),
            navDrawerItems);
    mDrawerList.setAdapter(adapter);

    // enabling action bar app icon and behaving it as toggle button
    //getActionBar().setDisplayHomeAsUpEnabled(true);
    //getActionBar().setHomeButtonEnabled(true);

    // ActionBarDrawerToggle ties together the the proper interactions
    // between the sliding drawer and the action bar app icon
    mDrawerToggle = new ActionBarDrawerToggle(this, /* host Activity */
    mDrawerLayout, /* DrawerLayout object */
    toolbar, /* nav drawer image to replace 'Up' caret */
    R.string.drawer_open, /* "open drawer" description for accessibility */
    R.string.drawer_close /* "close drawer" description for accessibility */
    ) {
        public void onDrawerClosed(View view) {
            // getSupportActionBar().setTitle(mTitle);
            toolbartitle.setText(mTitle);
            invalidateOptionsMenu(); // creates call to
                                        // onPrepareOptionsMenu()
        }

        public void onDrawerOpened(View drawerView) {
            // getSupportActionBar().setTitle(mDrawerTitle);
            toolbartitle.setText(mDrawerTitle);
            invalidateOptionsMenu(); // creates call to
                                        // onPrepareOptionsMenu()
        }
    };
    mDrawerLayout.setDrawerListener(mDrawerToggle);
    // getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    // getSupportActionBar().setHomeButtonEnabled(true);

     toolbar.inflateMenu(R.menu.main);

     toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem menuItem) {

                switch (menuItem.getItemId()){
                case R.id.action_settings:
                    return true;
                case R.id.action_login:
                    startActivity(new Intent(C2ShopActivity.this, ActivityLogin.class));
                    return true;
                case R.id.my_orders:
                    startActivity(new Intent(C2ShopActivity.this,
                            ActivityMyOrders.class));
                    return true;
                }

                return false;
            }
        });
     toolbar.setLogo(R.drawable.ic_launcher);
    toolbartitle.setText("C2Shoppy");
    mDrawerToggle.syncState();

    if (savedInstanceState == null) {
        displayView(0);
        // selectItem(0);
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    View count = menu.findItem(R.id.badge).getActionView();
    notifCount = (Button) count.findViewById(R.id.btnCart);

    notifCount.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            startActivity(new Intent(C2ShopActivity.this,
                    ActivityCart.class));
        }

    });
    if (mNotifCount == 0) {

    } else {
        notifCount.setText(String.valueOf(mNotifCount));
    }

    return super.onCreateOptionsMenu(menu);
}

0 个答案:

没有答案