如何更新tab中的badge值

程序中有tabbar中有5个tab。在四个tab中都添加了badge。现在需要在一些操作只需后,更新badge的值。并且更新来自其他的activity。下面是tabbar中添加badge的部分代码:

TabWidget tabs = (TabWidget) findViewById(android.R.id.tabs);
badge = new BadgeView(context, tabs, 3);
badge.setTextSize(12);
badge.setBadgePosition(BadgeView.POSITION_TOP_RIGHT);
badge.setText(pref.getString("balance", "0"));
badge.toggle();

多谢。

2个回答

在TabActivity中创建静态TabWidget对象:

public static TabWidget tabs;

在执行操作后从其他activity中访问tab对象,更新SharedPreferences
在其他的 Activity中使用下面代码:

TabWidget tabs = TabActivity.tabs;
badge = new BadgeView(context, tabs, 3);
badge.setTextSize(12);
badge.setBadgePosition(BadgeView.POSITION_TOP_RIGHT);
badge.setText(pref.getString("balance", "0"));
badge.toggle();

安卓中使用静态变量是不安全的,当程序从内存警告中恢复时不能保证静态变量一定存在,正常情况下是使用消息通知,用静态变量的话至少要判断一下是否为空。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问