我正在尝试根据回收者视图中的按钮的点击事件来更新我的徽章。这是我的代码:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.navigation_drawer, menu);
item = menu.findItem(R.id.add);
badgeLayout = (RelativeLayout) MenuItemCompat.getActionView(item);
mCounter = (TextView) badgeLayout.findViewById(R.id.counter);
cartButton=(Button) badgeLayout.findViewById(R.id.button1);
cartButton.setTypeface(icon);
super.onCreateOptionsMenu(menu, inflater);
}
我想在这里更新mCounter的值:
这是recyclerview代码:
holder.cartBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mCounter.setText("2");// THIS DOES NOT WORK
}
});
请帮助我!
答案 0 :(得分:1)
您应该将此事件(或只是您要设置的数字)传递回活动,调用invalidateOptionsMenu();
并在函数onPrepareOptionsMenu(Menu menu)
中调用您在onCreateOptionsMenu(Menu menu, MenuInflater inflater)
<中的代码/ p>
答案 1 :(得分:1)
您可以通过以下四种方式执行此任务:
public static
变量并将其值设置为徽章TextView。BroadcastReceiver
并在值更改时调用它。EventBus
reference interface