我有一个问题很长时间找不到答案,如果您能提供帮助,我将不胜感激。
我有一个 TextEdit,我在文本之间添加了图标(表情符号)。图标存储在名为 imagesInTxt 的 ImageSpan[] 数组中。然后我遍历 ImageSpan[] 并尝试比较它的可绘制对象或它可以从 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 = ";-(";
}
}