I have a PopupMenu
with 4 options: add as All, as Debit , as Credit and as Don't show balance. What I want to do is if you click, don't show item then change Title of that item 'Show balance' and change checked value.
I've been looking for some solution here in Stackoverflow but none of them seem to work for me. Here's what I've tried so far:
If I click on item then not change item title.
public void showPopupFilter(View v) {
PopupMenu popup = new PopupMenu(getActivity(), v);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.filter_menu, popup.getMenu());
setHasOptionsMenu(true);
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.debited:
searchDebited("Advanced");
homeAdapter.notifyDataSetChanged();
break;
case R.id.credited:
searchCredited("Due");
homeAdapter.notifyDataSetChanged();
break;
case R.id.all:
filterlist.clear();
filterlist.addAll(messageArrayList);
homeAdapter.notifyDataSetChanged();
break;
case R.id.balance0:
if (!inBed) {
// popup.getMenu().getItem(4).setVisible(false);
// popup.getMenu().findItem(R.id.balancenot0).setVisible(true);
menuItem.setTitle(getActivity().getResources().getString(R.string.filterbalancenot0));
menuItem.setChecked(true);
searchbalancenot0("0");
inBed = true;
homeAdapter.notifyDataSetChanged();
break;
} else {
// popup.getMenu().findItem(R.id.balance0).setVisible(true);
// popup.getMenu().findItem(R.id.balancenot0).setVisible(false);
menuItem.setChecked(false);
menuItem.setTitle(getActivity().getResources().getString(R.string.filterbalance0));
searchbalance("0");
inBed = false;
homeAdapter.notifyDataSetChanged();
break;
}
default:
return false;
}
return true;
}
});
popup.show();
}
If I click on item first time then call other function it work proper. But item title not change.