在string资源中添加变量

public void checkModeByAction() {
    if(TxrjConstant.ACTION_ADD_RECIPIENT.equals(getIntent().getAction())) {
        mode = Mode.MODE_SELECT;
        mSelectOk = (Button)findViewById(R.id.select_ok);
        mSelectAll = (Button)findViewById(R.id.select_all);
    }
}

public void updateSelectButtonText() {
    int count = 0;
    int size = mContacts.size();
    for(int i=0;i<size;i++) {
        if(mContacts.get(i).isSelected())
            count++;
    }
    updateSelectButtonText(count);
}

public void updateSelectButtonText(int count) {
    String txtSelectOk = getResources().getString(R.string.contact_select_ok);
    String.format(txtSelectOk, count);

    mSelectOk.setText(txtSelectOk);
    String txtSelectAll = getResources().getString(
            count == mContacts.size() ? R.string.contact_unselect_all
                    : R.string.contact_select_all);
    mSelectAll.setText(txtSelectAll);
}

如果按照如下定义

<string name="contact_select_ok">ok(%1$d)</string>

结果显示仍然是ok(%1$d)

是不是括号的缘故呢?

很奇怪,将小括号去掉,或将小括号改成中括号,也会出现这个问题

再将%1$d改成%d,还是有这个问题

真活该,很低级的错误

将上面红色的两条代码第2条代码修改

String txtSelectOk = getResources().getString(R.string.contact_select_ok);
txtSelectOk = String.format(txtSelectOk, count);

再执行就符合预期效果

参考:http://hi.baidu.com/gaogaf/item/95dc908c81e566c8b071544a

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值