我有一个问题,我找不到答案太长时间,如果你能提供帮助,我将不胜感激。
我有一个TextEdit,我在文本之间添加了图标(Emojis)。 图标存储在名为imagesInTxt的ImageSpan []数组中。 然后我遍历ImageSpan [],我试图比较它的drawable或它可以从XML提供给资源的任何常量值,例如:R.Drawable.Smiley首先用作图标。
问题是从getResources()。getDrawable(R.Drawable.smiley)返回的唯一标识符与我从imagesInTxt [x] .getDrawable()获得的标识符不匹配,尽管我们谈论的是相同的图标完全正确。
我不希望也看不到使用.SetTag()和.GetTag()的方法因为我在EditText中处理ImageSpan []而不是按钮本身,所以这个解决方案没有帮助我
我不想将ImageSpan []直接与ImageView按钮进行比较。我需要以任何可能的方式将它与我使用的原始资源(例如:R.Drawable.xxxx)进行比较。
我怎样才能实现这一目标? 如果不可能,你可以建议什么作为替代解决方案?
ImageSpan[] imagesInTxt = txt.getSpans(0, txt.length(), ImageSpan.class);
for (int x = 0; x < itemSpans.length; x++) { // Go through the ICONS
Drawable myIcon = getResources().getDrawable(R.Drawable.smiley);
if(imagesInTxt[x].getDrawable().equals(myIcon)) {
Icon = ";-)";
}
myIcon = getResources().getDrawable(R.drawable.sad);
if(imagesInTxt[x].getDrawable().equals(myIcon)) {
Icon = ";-(";
}
}