Android异常:UnknownFormatConversionException

时间:2015-05-15 13:54:31

标签: android exception exception-handling format

您好我在一个位于ViewHolder内部的RobotoText中设置了一些文本我正在调用它:

viewHolder.txtSimilarAds.setText((((Property)  ads.get(position)).getSimilar_items_count() == 1 ? context.getString(R.string.ad_data_similar)  : context.getString(R.string.ad_data_similar_plural, ads.get(position).getImagesCount())));

然而(有时并不总是)由于某种原因我不断得到这个错误异常UnknownFormatConversionException并且它指向该类内部的这一行。可能是什么问题呢?我做错了吗?

2 个答案:

答案 0 :(得分:1)

检查R.string.ad_data_similar_plural中的字符串是否包含整数的有效占位符。它应该是"Here is my number: %d"

String format specification

顺便说一句,像这样的单行程更难以理解,并使调试更加困难。一种更具可读性的方法可以更容易地给出错误的行:

String similarAdsText;
Property adsProperty = ads.get(position);

if (adsProperty.getSimilar_items_count() == 1) {
    similarAdsText = context.getString(R.string.ad_data_similar);
}
else {
    similarAdsText = context.getString(R.string.ad_data_similar_plural, adsProperty.getImagesCount());
}

viewHolder.txtSimilarAds.setText(similarAdsText);

答案 1 :(得分:0)

你在单行尝试分割它的方法太多了。问题看起来就像是将Property对象与错误的1进行比较。

(Property)ads.get(position)).getSimilar_items_count() == 1

change this to

Property property = (Property)  ads.get(position));
property.getSimilar_items_count() == 1