-1

I´ve followed this tutorial to create my badge on the toolbar, the problem comes when I try to update the badge value, it doesn´t change, I´ve tryed a lot of things but it doesn´t work. Here is my code: Java:

    private void carga() {
    sol = 0;
    for (int i = 0; i < comidaComandaArrayList.size(); i++) {
        sol = sol + comidaComandaArrayList.get(i).getCantidad();
    }
    invalidateOptionsMenu();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    MenuItem item = menu.findItem(R.id.badge);
    MenuItemCompat.setActionView(item, R.layout.feed_update_count);
    carga();
    notifCount = (TextView) MenuItemCompat.getActionView(item);
    notifCount.setText(String.valueOf(sol));
    return super.onCreateOptionsMenu(menu);
}

Menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto">
<item
    android:id="@+id/action_window"
    android:title="Pedir"
    app:showAsAction="always"/>


<item
    android:id="@+id/badge"
    android:actionLayout="@layout/feed_update_count"
    android:icon="@drawable/shape_notification"
    android:title="contador"
    app:showAsAction="always"
    >
</item>

Badge layout

    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/notif_count"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minWidth="32dp"
    android:minHeight="32dp"
    android:background="@drawable/shape_notification"
    android:text="0"
    android:textSize="16sp"
    android:textColor="@android:color/white"
    android:gravity="center"
    android:padding="2dp"
    android:singleLine="true">

Thanks in advance for the help.

Community
  • 1
  • 1
JJaviMS
  • 392
  • 6
  • 18

1 Answers1

0

Please change below code :

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    MenuItem item = menu.findItem(R.id.badge);
    MenuItemCompat.setActionView(item, R.layout.feed_update_count);
    carga();
View count = menu.findItem(R.id.badge).getActionView();
notifCount = (Button) count.findViewById(R.id.notif_count);
    notifCount.setText(String.valueOf(sol));
    return super.onCreateOptionsMenu(menu);
}

to

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    MenuItem item = menu.findItem(R.id.badge);
    MenuItemCompat.setActionView(item, R.layout.feed_update_count);
    carga();
    notifCount = (TextView) MenuItemCompat.getActionView(item);
    notifCount.setText(String.valueOf(sol));
    return super.onCreateOptionsMenu(menu);
}
Sai's Stack
  • 1,345
  • 2
  • 16
  • 29