将正则表达式 %1$d 转换为 Android 中的字符串
Converting regex %1$d to string in Android
我有 <string name="monthly_savings_other">Monthly savings\n$%1$d</string>
我知道因为是 %1$d
我不能像 string.But 那样显示它 我不知道如何正确格式化,虽然有互联网上有很多例子,我只能绕过 it.I 不知道如何采取 %1$d
从 android 中的字符串文件夹对其进行格式化。
public void binding(final OtherAccModel modelClass) {
binding.setOther(modelClass);
binding.executePendingBindings();
setSpannableTextWithColor(binding.policyTV, R.string.policy_account_number_other, modelClass.getPolicy(), Color.BLACK);
setSpannableTextWithColor(binding.companyNameTV,R.string.company_name_other,modelClass.getCompanyName(), Color.BLACK);
setSpannableTextWithColor(binding.monthlySavingsTV,R.string.monthly_savings_other, String.valueOf(modelClass.getMonthlySavings()), Color.BLACK);
setSpannableTextWithColor(binding.rorTV,R.string.return_of_value_other, String.valueOf(modelClass.getRor()), Color.BLACK);
setSpannableTextWithColor(binding.accNameTV,R.string.type_other,modelClass.getType(), Color.BLACK);
setSpannableTextWithColor(binding.accValueTV,R.string.current_value_other, String.valueOf(modelClass.getCurrentValue()), Color.BLACK);
}
void setSpannableTextWithColor(TextView view, int resourceId, String string, int color) {
if (string == null)
return;
String fulltext = context.getResources().getString(resourceId, string);
String part = string;
SpannableString str = new SpannableString(fulltext);
str.setSpan(new ForegroundColorSpan(color), fulltext.length() - part.length(), fulltext.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
view.setText(str);
}
在线String fulltext = context.getResources().getString(resourceId, string);
我遇到错误
java.util.IllegalFormatConversionException: d != java.lang.String
使用 %1$s 而不是 %1$d。
d 将数字格式化为十进制数字,并且只能与整数一起使用
更多信息请阅读https://developer.android.com/guide/topics/resources/string-resource#FormattingAndStyling
我有 <string name="monthly_savings_other">Monthly savings\n$%1$d</string>
我知道因为是 %1$d
我不能像 string.But 那样显示它 我不知道如何正确格式化,虽然有互联网上有很多例子,我只能绕过 it.I 不知道如何采取 %1$d
从 android 中的字符串文件夹对其进行格式化。
public void binding(final OtherAccModel modelClass) {
binding.setOther(modelClass);
binding.executePendingBindings();
setSpannableTextWithColor(binding.policyTV, R.string.policy_account_number_other, modelClass.getPolicy(), Color.BLACK);
setSpannableTextWithColor(binding.companyNameTV,R.string.company_name_other,modelClass.getCompanyName(), Color.BLACK);
setSpannableTextWithColor(binding.monthlySavingsTV,R.string.monthly_savings_other, String.valueOf(modelClass.getMonthlySavings()), Color.BLACK);
setSpannableTextWithColor(binding.rorTV,R.string.return_of_value_other, String.valueOf(modelClass.getRor()), Color.BLACK);
setSpannableTextWithColor(binding.accNameTV,R.string.type_other,modelClass.getType(), Color.BLACK);
setSpannableTextWithColor(binding.accValueTV,R.string.current_value_other, String.valueOf(modelClass.getCurrentValue()), Color.BLACK);
}
void setSpannableTextWithColor(TextView view, int resourceId, String string, int color) {
if (string == null)
return;
String fulltext = context.getResources().getString(resourceId, string);
String part = string;
SpannableString str = new SpannableString(fulltext);
str.setSpan(new ForegroundColorSpan(color), fulltext.length() - part.length(), fulltext.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
view.setText(str);
}
在线String fulltext = context.getResources().getString(resourceId, string);
我遇到错误
java.util.IllegalFormatConversionException: d != java.lang.String
使用 %1$s 而不是 %1$d。
d 将数字格式化为十进制数字,并且只能与整数一起使用
更多信息请阅读https://developer.android.com/guide/topics/resources/string-resource#FormattingAndStyling