使用我的溢出菜单功能添加图标

时间:2018-08-08 16:27:30

标签: java android oncreateoptionsmenu

我有一个提取功能,我试图在onCreateOptionsMenu(Menu menu, MenuInflater inflater)中调用它以实时填充菜单。 此功能在溢出菜单中运行正常,但在我的switch块中却无法正常工作。我试图正确调用此函数并在单击新图标时运行它。有想法吗?

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
            }
        }
    }

我的switch块:

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

附言:我尝试通过以下方式将溢出图标更改为另一个图标:

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

,但也不起作用。错误是NullPointerException

1 个答案:

答案 0 :(得分:0)

已解决    首先从我的基本片段创建了一个函数

  @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);
}

然后它对我有用。