هم اکنون عضو شوید

ورود

فراموشی گذرواژه

گذروازه خود را فراموش کردید ؟

ورود

عضو شوید

با عضویت در سایت از امکانات فوق العاده بهرمنده خواهید شد.

دوره آموزش برنامه نویسی اندروید
آموزش BadgeCounter در برنامه نویسی اندروید

آموزش BadgeCounter در برنامه نویسی اندروید

سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش BadgeCounter در برنامه نویسی اندروید می پرازین شاید بپرسید Badge چیست ؟ badge برای نمایش یک عدد در بخش Menu یا Toolbar نمایش می دهد اپلیکیشن دیجی کالا نیز از این کتاب خانه استفاده می کنید در ادامه می توانید پیش نمایشی از آن را مشاهده کنید با ما همراه باشید.

 

 

ابتدا باید یک کتاب خانه را به پروژه خود اضافه کنید.

برای اینکار وارد فایل Build.gradle از نوع Module شده سپس در بخش dependencies خط زیر را اضافه کنید.

پروژه را sync کنید. علت خطاهای گریدل را قبلا بررسی کردیم کافی است در سایت واژه گریدل را جستجو کنید.

باید یک پوشه به نام menu ایجاد کرده و در آن یک فایل به نام menu.xml ایجاد کنید سپس کدهای زیر را در آن قرار دهید.

سپس در MainActivity.java یا اکتیویتی که می خواهید این منو را نمایش دهید کد زیر را قرار دهید.

در بالا تو Notification در سمت چپ نمایش داده می شوند BadgeColor رنگ عدد را مشخص می کند.  BadgeCounter.hide در صورتی که مقدار notification کمتر از صفر بود باید badge نمایش داده نشود و در void دوم onOptionsItemSelected مقدار کلیک بروی Notficaition را قرار دادیم که مقدار را از آن کم می کند پس mNotificationCounter از مقدار عدد badge کم می کند و دقت کنید منو باید Inflate شود تا در menu نمایش داده شود.

 

 

این آموزش هم به پایان رسید.

 

موفق و پیروز باشید

 

 

درباره نویسنده

با زبان های برنامه نویسی C# , Java , Php به صورت تخصصی کار کردم و بیشتر وقتم رو در برنامه نویسی می گذرونم علاقه زیادی به ساخت اپلیکیشن اندروید دارم.

نظرها ( ۵ )

  1. امیرمحمد
    ۱۷, شهریور , ۱۳۹۶ در ۱:۴۸ ق.ظ

    سلام خسته نباشید .

    من طبق آموزشتون پیش رفتم اما اینو اررور میده :
    mNotificationCounter

    میگه تعریف نشده
    مشکل از کجاس ؟

    • محمد حسین جعفری پور
      ۱۷, شهریور , ۱۳۹۶ در ۸:۲۲ ق.ظ

      سلام خیلی ممنون
      خب باید تعریف بشه دیگه آن یک مثال بودش باید اینطوری بنویسید.

  2. امیرمحمد
    ۱۸, شهریور , ۱۳۹۶ در ۳:۲۱ ب.ظ

    خب این NotificationCounter چی هست ؟‌ ما که کلاسی به نام NotificationCounter ثبت نکردیم . میشه یه آموزش ویدیویی بزارید یا اینک یک نمونه کد ؟

    • امیرمحمد
      ۱۸, شهریور , ۱۳۹۶ در ۳:۳۵ ب.ظ

      با چک کردن کد های لایبراری https://github.com/juanlabrador/BadgeCounter/ فهمیدم در واقع mNotificationCounter یک متغییر عددی هستش که شما باید تعریفش کنید ، این هم مثال :‌

      package com.github.juanlabrador.badgenotification;

      import android.support.v7.app.AppCompatActivity;
      import android.os.Bundle;
      import android.view.Menu;
      import android.view.MenuItem;

      import com.github.juanlabrador.badgecounter.BadgeCounter;

      public class DemoActivity extends AppCompatActivity {

      private int mNotificationCounter = 17;

      @Override
      protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_demo);
      }

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

      //you can add some logic (hide it if the count == 0)
      if (mNotificationCounter > 0) {
      BadgeCounter.update(this,
      menu.findItem(R.id.notification),
      R.mipmap.ic_notification,
      BadgeCounter.BadgeColor.BLUE,
      mNotificationCounter);
      } else {
      BadgeCounter.hide(menu.findItem(R.id.notification));
      }

      return true;
      }

      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
      // Handle action bar item clicks here. The action bar will
      // automatically handle clicks on the Home/Up button, so long
      // as you specify a parent activity in AndroidManifest.xml.
      int id = item.getItemId();

      //noinspection SimplifiableIfStatement
      if (id == R.id.action_settings) {
      return true;
      } else if (id == R.id.notification) {
      mNotificationCounter–;
      BadgeCounter.update(item, mNotificationCounter);
      }

      return super.onOptionsItemSelected(item);
      }
      }

  3. امیرمحمد
    ۲۱, شهریور , ۱۳۹۶ در ۱۲:۲۰ ب.ظ

    چطوری میتونیم اینو ببریم سمت چپ تولبار ؟‌
    اضافه که میشه میاد سمت راست