Search code examples
javaandroidoncreateoptionsmenu

Adding icon with my overflow menu features


I have a fetch function and I'm trying to call it in onCreateOptionsMenu(Menu menu, MenuInflater inflater) for filling the menu in real time. This function is working perfectly in the overflow menu but is not working in my switch block. I'm trying to call this function properly and run it when clicked on my new icon. Any idea?

private void fetchMembers(Menu menu) {
    @Override
    public void onNext(ListMembersResponse response) {
        if (response.members != null && !response.members.isEmpty()) {
            for (int i = 0; i < response.members.size(); i++) {
               Merchant merchant = response.members.get(i);
               menu.add( Menu.NONE, i, Menu.NONE, merchant.firstName + " " + merchant.lastName);    ///here is fetching full name
            }
        }
    }

My switch block:

switch (item.getItemId())
{
    case R.id.menu_item_filter:
    fetchMembers(menu);

    case R.id.menu_item_search:

    if (!TextUtils.isEmpty(item.getTitle())) {
        trackEvent(AnalyticsManager.CATEGORY_HISTORY_SEARCH, 
                          AnalyticsManager.ACTION_TRIGGERED,
                          AnalyticsManager.LABEL_TRIGGERED);
        String newText = String.valueOf(item.getTitle());
        String text = newText.trim().toLowerCase(Locale.getDefault());

        return true;
    } else {
        paymentsAdapter.filter("");
        itemManager.expandGroup(0);
        scrollListener.setEndlessScrollEnabled(true);
        return true;
    }
}

return false;  //true

P.S: I've tried to change my overflow icon with another one with:

Drawable drawable = 
    ContextCompat.getDrawable(getApplicationContext(),R.drawable.change_pass);
toolbar.setOverflowIcon(drawable);

but it is not working either. The error is a NullPointerException.


Solution

  • SOLVED firstly created a function from my basefragment

      @Override
      public void updateToolbar(Toolbar toolbar) {
    
     setTitle( R.string.title_transaction_history );
     Drawable drawablew =
     ContextCompat.getDrawable(getApplicationContext(),R.drawable.ic_icon_filter);
     toolbar.setOverflowIcon(drawablew);
    }
    

    Then it is works for me.