2017-02-28 77 views
0

我想比较drawables。这两个drawable是在一个ImageButton和一个变量中,它保存另一个可绘制的对象。Android ImageButton图像与包含图像的变量比较

这里是我的代码

option1.setImageResource(questionsLibrary.getOption1(questionID)); 

correctAnswer = questionsLibrary.getCorrectAnswer(questionID); 

选项1是一个ImageButton的同时correctAnswer是保持绘制的变量。

我想比较它们两个来检查option1和correctAnswer是否具有相同的drawable。

+0

Drawable是一个抽象类。你知道如果correctAnswer引用与ImageButton相同的drawable子类吗?如果它们相同,是否意味着option1 drawable来自与ImageButton相同的资源? – JoeMjr2

+0

@ JoeMjr2 option1是图像按钮。我想比较option1的值和correctAnswer,它是一个包含该值的数组。 – nanana

回答

1

而是比较绘制,采取鉴于标签性能的优势。设置标签option1.setTag("Answer or unique key")。然后通过从ImageButton option1.getTag()获取标签值来比较它。

+0

因为option1将被重复使用,所以我不能设置标签。 – nanana

+0

重复更新其标签,或者使用密钥维护HashMap作为问题编号为 – Rahul

+0

您能否提供反复更新标签的提示或代码段。 – nanana

0

试试这个

if(option1.getDrawable().getConstantState().equal(correctAnswer.getConstantState())){ 
    //Your code here 
} 
+0

correctAnswer没有getConstantState选项,因为correctAnswer是一个变量,它保存drawable而不是drawable本身。 :/ – nanana

+0

correctAnswer的DataType是什么? – ShekharKG

+0

correctAnswer是一个数组 – nanana