我有一个按钮:
.setClickable(false);
和
.getBackground().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);
初始化。
然后我等待GPS信号,当找到一个时,我将setClickable设置为true,将ColorFilter设置为null。这确实有效,但除非在任何地方触摸屏幕,否则不会更新按钮。
我确信这不是GPS代码中的一些循环错误,因为一旦按下此按钮,另一个设置为可点击并且过滤器为null,但完全相同的事情发生。
以前有没有经历过这个?它发生在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);
}
}
});
答案 0 :(得分:0)
如果有人来到这里......你必须致电:
save.invalidateSelf();
在更新的apis中更改背景后。