如何在Android中更新标签上的徽章值?

如何在Android中更新标签上的徽章值?,android,tabs,tabwidget,Android,Tabs,Tabwidget,我有带有5个选项卡的选项卡栏,我在第4个选项卡上添加了徽章。我想在对服务器执行某些操作后更新我的徽章值。但我不知道该怎么做。我还想从不同的活动中更新徽章值。 在Tabbar TabWidget tabs = (TabWidget) findViewById(android.R.id.tabs); badge = new BadgeView(context, tabs, 3); badge.setTextSize(12); badge.setBadgePosition(BadgeView.POSI

我有带有5个选项卡的
选项卡栏
,我在第4个选项卡上添加了徽章。我想在对服务器执行某些操作后更新我的徽章值。但我不知道该怎么做。我还想从不同的
活动中更新徽章值。
在
Tabbar

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();

提前谢谢

要保存共享首选项,您必须这样做。有点像你加载它的方式。您需要使用相同的首选项

        SharedPreferences prefs = mContext.getSharedPreferences("PREF_KEY", 0);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString("balance", balance_value);
        editor.commit();

TabActivity
中创建静态
TabWidget
对象选项卡,如下所示

public static TabWidget tabs;
执行操作后,从任何活动访问
选项卡
对象,在
共享参考
中更新您的
余额
。并使用以下代码段

在您的其他
活动中

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();
希望这能对你有所帮助。

分享我的一些尝试

如果您的视图是这样的布局

android:layout_width="0dp"<br>
android:layout_height="wrap_content"<br>
android:layout_weight="1"<br>
像这样:-

ViewTreeObserver vto = container.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
        container.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
        int width  = container.getMeasuredWidth();
        int height = container.getMeasuredHeight(); 

        LayoutParams params = target.getLayoutParams();
        params.width = width;
        params.height = height - BadgeView.this.getHeight();
        target.setLayoutParams(params);             
    } 
});

这是我的荣幸。。happy coding:)嗨,Sangram Patil,你能在这里发布示例代码以在选项卡中添加徽章吗?你正在使用哪个库(.jar)文件?给我那个库文件的链接这里是示例代码。我试过一次,但当我将标签背景中的图像设置为setIndicator(视图)时,徽章无法正确显示。。。。有什么解决办法吗?
ViewTreeObserver vto = container.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
        container.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
        int width  = container.getMeasuredWidth();
        int height = container.getMeasuredHeight(); 

        LayoutParams params = target.getLayoutParams();
        params.width = width;
        params.height = height - BadgeView.this.getHeight();
        target.setLayoutParams(params);             
    } 
});