2015-04-10 5 views
1

У меня возникли проблемы сравнение кнопка фоновых изображений, это код у меня естьСравнения Кнопка фоновых изображений

if (temp[0].getBackground() == temp[1].getBackground()) { 

     ... 
    } 

Так что, когда я запускаю код и фоны температуры [0] и температуры [1] являются из того же Drawable он говорит, что они не равны (==) друг с другом, но если бы я сделал

if (temp[0].getDrawingCacheBackgroundColor() == temp[1].getDrawingCacheBackgroundColor()) { 

     ... 
    } 

они будут равны друг другу, но если бы я имел еще одну кнопку с другой Drawable она проходит, как те, которые мне не нужны. Как сделать оператор if для сравнения фоновых изображений моих кнопок?

temp [] - это массив, содержащий кнопки.

ответ

0

Это сводится к: на Java сравниваются объекты с использованием .equals(), а не ==; позднее следует использовать только для сравнения примитивов (int, long ... и т. д.) или ссылок на объекты.

+0

if (temp [0] .getBackground(). Equals (temp [1] .getBackground())) - это то, что вы имеете в виду? Это все еще не работает для меня, как должно. : \ – Kaisado

+0

Если 'getBackground()' возвращает объект, то это путь. Если 'equals()' возвращает 'false', это означает, что оба объекта имеют разные значения. Какой тип 'getBackground()'? Я предполагаю, что вы используете Swing, да? –

+0

он возвращает Drawable, я не знаю, что такое Swing :( – Kaisado

0

Использовать .equals(). Оператор == только проверяет, совпадают ли две ссылки. Функция equals сравнивает объекты. Предполагая, что Android правильно реализован .equals, это должно сработать.

Смежные вопросы