Android setColorFilter не обновляет кнопку - PullRequest
1 голос
/ 22 июня 2011

У меня есть кнопка, которая имеет:

.setClickable(false);

и

.getBackground().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);

при инициализации.

Затем я жду сигнала GPS, и когда он будет найден, я устанавливаю для setClickable значение true, а для ColorFilter - значение null. Это работает, но не обновляет кнопку, если к экрану нигде не прикасаться.

Я уверен, что это не какая-то ошибка в цикле в коде GPS, потому что после нажатия этой кнопки другая становится кликабельной, а фильтр - нулевым, но происходит то же самое.

Кто-нибудь когда-либо испытывал это раньше? Бывает и в 2.2 и в 2.3

Вот пример из списка действий кнопки:

setgps1.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            if(!gps1set)
            {
                gps1set = true;
                setgps1.setText("Reset");
                latitude1.setText(latitude1.getText()+ "   +/-"+gpsaccuracy+"m");
                longitude1.setText(longitude1.getText()+ "   +/-"+gpsaccuracy+"m");
                altitude1.setText(altitude1.getText() + "   +/-"+gpsaccuracy+"m");
                latitude1.setTextColor(Color.GREEN);
                longitude1.setTextColor(Color.GREEN);
                altitude1.setTextColor(Color.GREEN);
                save.setClickable(true);
                save.getBackground().setColorFilter(null);


            }
            else
            {
                gps1set = false;
                setgps1.setText("Set GPS 1");
                latitude1.setText(""+lat1);
                longitude1.setText(""+lon1);
                altitude1.setText(""+alt);
                latitude1.setTextColor(Color.WHITE);
                longitude1.setTextColor(Color.WHITE);
                altitude1.setTextColor(Color.WHITE);
                save.setClickable(false);
                save.getBackground().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);

            }
        }

    });

1 Ответ

0 голосов
/ 13 февраля 2015

Если кто-то прибыл сюда ... вы должны позвонить:

save.invalidateSelf();

после смены фона в более новом apis.

...