2015-07-30 1 views
0

Я разрабатываю приложение для Android, где у меня есть несколько EditTexts. Я устанавливаю фоновый цвет в EditText динамически с тем, который я определил в папке res/drawable. Я хочу получить фоновый цвет EditText и сравнить его с некоторым шестнадцатеричным цветом, e-g, если цвет # ff0000 затем измените цвет текста этого EditText на белый. Это, как я устанавливаю цвет фона EditText:Получить и сравнить цвет фона EditText

allScaleEditTexts.get(row_col).setBackgroundResource 
      (R.drawable.edittext_bgcolor_one); 

То есть, как я получаю цвет фона EditText:

Drawable scaleEdTxtColor = allScaleEditTexts.get(row_col) 
       .getBackground(); 

Теперь я хочу, чтобы сделать это сравнение, как:

if(scaleEdTxtColor == #ff0000) 
      allScaleEditTexts.get(row_col).setTextColor(Color.WHITE); 
     else 
      allScaleEditTexts.get(row_col).setTextColor(Color.BLACK); 

Я не знаю, как это сравнить. Я пробовал:

if(scaleEdTxtColor == Color.parseColor("#FF0000")) 

Но тогда я получаю ошибку сравнения извлекаемого с int. Как я могу это решить?

+0

https://developer.android.com/reference/android/view/View.html#getBackground%28%29 Посмотрите, что .getBackground возвращается! –

ответ

0

Вы не можете просто использовать

if(scaleEdTxtColor == #ff0000) 

причиной его растяжимой.

Я думаю, что вам нужно scaledEdTxtColor.getColorFilter, как вы установите цвет с:

scaledEdTxtColor.setColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP); 

Посмотрите там.