2017-02-28 78 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