2 annbnncnnd AnnBnnCnnD 于 2013.04.17 15:24 提问

如何更新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个回答

Kakalapa1986
Kakalapa1986   2013.04.17 16:47
已采纳

在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();
huzgd
huzgd   2013.04.18 02:11

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!