Я вижу странное поведение в цикле for, который содержит блок if-else if-else.
Если я сделаю следующее, все будет работать как положено, за исключением имен, которых нет в моем списке:
Resources res = context.getResources();
String[] debtnameslist = res.getStringArray(R.array.debtnames);
for(int i=1; i < debtnameslist.length; i++){
if (debtname.toLowerCase().contains(debtnameslist[i]))
{
int resID = context.getResources().getIdentifier("ic_dialog_"+debtnameslist[i], "drawable", "com.freshsoft.android.debtdestroyer");
icon.setImageResource(resID);
}
else if ((debtname.toLowerCase().contains("best") && (debtname.toLowerCase().contains("buy"))))
{
icon.setImageResource(R.drawable.ic_dialog_bestbuy);
}
// else {
// icon.setImageResource(R.drawable.ic_dialog_dollar);
// }
}
дает мне это:
http://i54.tinypic.com/rsr33q.png
это работает, за исключением «теста», который должен показывать общий символ. Если я откомментирую часть // else, я получу следующее:
http://i54.tinypic.com/25kj6z6.png
мой xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="debtnames">
<item >chase</item>
<item >discover</item>
<item >citibank</item>
<item >amazon</item>
<item >american express</item>
<item >diners</item>
<item >mastercard</item>
<item >visa</item>
<item >paypal</item>
<item >macys</item>
<item >bmw</item>
<item >target</item>
</string-array>
</resources>