1

我有一个按钮:

.setClickable(false);

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

初始化时。

然后我等待 GPS 信号,当找到一个 GPS 信号时,我将 setClickable 设置为 true,并将 ColorFilter 设置为 null。这确实有效,但除非在任何地方触摸屏幕,否则不会更新按钮。

我确信这不是 GPS 代码中的一些循环错误,因为一旦按下此按钮,另一个按钮将设置为可点击且过滤器为空,但会发生完全相同的事情。

以前有人经历过吗?它发生在 2.2 和 2.3 中

下面是按钮的 actionlistener 示例:

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);

            }
        }

    });
4

1 回答 1

0

如果有人来到这里......你必须打电话给:

save.invalidateSelf();

在较新的 api 中更改背景后。

于 2015-02-13T14:01:25.960 回答