3

我有tabbar5 个标签,我在第 4 个标签上添加了徽章。我想在对服务器执行一些操作后更新我的徽章值。但不知道如何做到这一点。我也想从不同的更新徽章值activities。添加徽章的代码片段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();

先感谢您

4

3 回答 3

5

像这样创建静态TabWidget对象选项卡,TabActivity

public static TabWidget tabs;

在您的操作执行后从任何活动访问tabs对象,更新您balanceSharedPreferences. 并使用以下代码片段。

在你的另一个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();

希望这会帮助你。

于 2013-04-17T05:44:41.293 回答
0

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

        SharedPreferences prefs = mContext.getSharedPreferences("PREF_KEY", 0);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString("balance", balance_value);
        editor.commit();
于 2013-04-17T05:22:22.270 回答
0

分享我的一些尝试

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

android:layout_width="0dp"<br>
android:layout_height="wrap_content"<br>
android:layout_weight="1"<br>

BadgeView会让你的视野空白。

如何去爱?修补

android.view.ViewTreeObserver.OnGlobalLayoutListener

像这样 :-

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);             
    } 
});
于 2013-06-28T08:45:45.440 回答